p_table <- function(tab_data, ...) {
tab_data_2 <- deparse(substitute(tab_data))
table_p <- do.call(CreateTableOne,
list(data = as.name(tab_data_2), includeNA = TRUE, ...))
table_p_out <- print(table_p,
showAllLevels = TRUE,
printToggle = FALSE)
kable(table_p_out,
align = "c")
}
uni_var <- function(test_var, data_imp) {
cat("_________________________________________________")
cat("\n")
cat(" \n##", test_var)
cat("\n")
cat("_________________________________________________")
cat("\n")
f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
as.name(test_var),
sep = " ~ " ))
data_imp_2 <- deparse(substitute(data_imp))
km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
print(km_fit)
cat("\n")
print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Univariable Cox Proportional Hazard Model for: ", test_var)
cat("\n")
cat("\n")
n_levels <- nlevels(data_imp[[test_var]])
if(n_levels == 1){
print("Only one level, no Cox model performed")
cat("\n")
} else {
cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
print(summary(cox_fit))
cat("\n")
do.call("ggforest",
list(model = cox_fit, data = as.name(data_imp_2)))
}
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
p <- do.call("ggsurvplot",
list(fit = km_fit, data = as.name(data_imp_2),
palette = "jco", censor = FALSE, legend = "right",
linetype = "strata", xlab = "Time (Months)"))
print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
"AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
"MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
"UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
"YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
"DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
"REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
"TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
"CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
"CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
"CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
"CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
"CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
"CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
"CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
"CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
"CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
"CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
"CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
"RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
"RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
"REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
"RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
"RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
"REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
"DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
"RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
"PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
"DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
"RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
"RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
"METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
"METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLextr <- read_fwf('NCDBPUF_NHLExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
breast <- read_fwf('NCDBPUF_Breast.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vulva <- read_fwf('NCDBPUF_Vulva.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vagina <- read_fwf('NCDBPUF_Vagina.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
penis <- read_fwf('NCDBPUF_Penis.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast,
vulva, vagina, penis, NHLextr)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina,
penis, NHLextr)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C000",
"C001",
"C002",
"C003",
"C004",
"C005",
"C006",
"C008",
"C009",
"C019",
"C020",
"C021",
"C022",
"C023",
"C024",
"C028",
"C029",
"C030",
"C031",
"C039",
"C040",
"C041",
"C048",
"C049",
"C050",
"C051",
"C052",
"C058",
"C059",
"C060",
"C061",
"C062",
"C068",
"C069",
"C079",
"C098",
"C099",
"C111",
"C142",
"C300",
"C379",
"C422",
"C770",
"C771",
"C772",
"C773",
"C774",
"C775",
"C778",
"C779"),
SITE_TEXT = c(
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2 External Lip: NOS",
"C00.3 Lip: Upper Mucosa",
"C00.4 Lip: Lower Mucosa",
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure",
"C00.8 Lip: Overlapping",
"C00.9 Lip NOS",
"C01.9 Tongue: Base NOS",
"C02.0 Tongue: Dorsal NOS",
"C02.1 Tongue: Border, Tip",
"C02.2 Tongue: Ventral NOS",
"C02.3 Tongue: Anterior NOS",
"C02.4 Lingual Tonsil",
"C02.8 Tongue: Overlapping",
"C02.9 Tongue: NOS",
"C03.0 Gum: Upper",
"C03.1 Gum: Lower",
"C03.9 Gum NOS",
"C04.0 Mouth: Anterior Floor",
"C04.1 Mouth: Lateral Floor",
"C04.8 Mouth: Overlapping Floor",
"C04.9 Floor of Mouth NOS",
"C05.0 Hard Palate",
"C05.1 Soft Palate NOS",
"C05.2 Uvula",
"C05.8 Palate: Overlapping",
"C05.9 Palate NOS",
"C06.0 Cheek Mucosa",
"C06.1 Mouth: Vestibule",
"C06.2 Retromolar Area",
"C06.8 Mouth: Other Overlapping",
"C06.9 Mouth NOS",
"C07.9 Parotid Gland",
"C09.8 Tonsil: Overlapping",
"C09.9 Tonsil NOS",
"C11.1 Nasopharynx: Poster Wall",
"C14.2 Waldeyer Ring",
"C30.0 Nasal Cavity",
"C37.9 Thymus",
"C42.2 Spleen",
"C77.0 Lymph Nodes: HeadFaceNeck",
"C77.1 Intrathoracic Lymph Nodes",
"C77.2 Intra-abdominal LymphNodes",
"C77.3 Lymph Nodes of axilla or arm ",
"C77.4 Lymph Nodes: Leg",
"C77.5 Pelvic Lymph Nodes",
"C77.8 Lymph Nodes: multiple region",
"C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE)
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS", "RAD_REGIONAL_DOSE_CGY",
"RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS",
"DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
"RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
"Community Cancer Program" = "1",
"Comprehensive Comm Ca Program" = "2",
"Academic/Research Program" = "3",
"Integrated Network Ca Program" = "4",
"Other" = "9")) %>%
mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
"New England" = "1",
"Middle Atlantic" = "2",
"South Atlantic" = "3",
"East North Central" = "4",
"East South Central" = "5",
"West North Central" = "6",
"West South Central" = "7",
"Mountain" = "8",
"Pacific" = "9",
"out of US" = "0")) %>%
mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
"Northeast" = c("1", "2"),
"South" = c("3", "7"),
"Midwest" = c("4", "5", "6"),
"West" = c("8", "9"))) %>%
mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
mutate(SEX_F = fct_recode(SEX,
"Male" = "1",
"Female" = "2")) %>%
mutate(RACE_F = fct_collapse(RACE,
"White" = c("01"),
"Black" = c("02"),
"Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
"16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
"32", "96", "97"),
"Other/Unk" = c("03", "98", "99"))) %>%
mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
"Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
"No" = c("0"),
"Unknown" = c("9"))) %>%
mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
"None" = "0",
"Private" = "1",
"Medicaid" = "2",
"Medicare" = "3",
"Other Government" = "4",
"Unknown" = "9")) %>%
mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
"Private")) %>%
mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
"Less than $38,000" = "1",
"$38,000 - $47,999" = "2",
"$48,000 - $62,999" = "3",
"$63,000 +" = "4")) %>%
mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
"21% or more" = "1",
"13 - 20.9%" = "2",
"7 - 12.9%" = "3",
"Less than 7%" = "4")) %>%
mutate(U_R_F = fct_collapse(UR_CD_13,
"Metro" = c("1", "2", "3"),
"Urban" = c("4", "5", "6", "7"),
"Rural" = c("8", "9"))) %>%
mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
All_Part_Prim = c("10", "11", "12", "13",
"14", "20", "21", "22"),
Other_Facility = c("00"))) %>%
mutate(GRADE_F = fct_recode(GRADE,
"Gr I: Well Diff" = "1",
"Gr II: Mod Diff" = "2",
"Gr III: Poor Diff" = "3",
"Gr IV: Undiff/Anaplastic" = "4",
"NA/Unkown" = "9")) %>%
mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
"N_A" = "88")) %>%
mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
"1")) %>%
mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
"N_A" = "88")) %>%
mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
"1")) %>%
mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
"N_A" = "88")) %>%
mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
"N_A" = "88")) %>%
mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
"No Residual" = "0",
"Residual, NOS" = "1",
"Microscopic Resid" = "2",
"Macroscopic Resid" = "3",
"Not evaluable" = "7",
"No surg" = "8",
"Unknown" = "9")) %>%
mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
"Yes" = c("1", "2", "3"),
"No" = c("0"),
"No surg/Unk/NA" = c("7", "8", "9"))) %>%
mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
"No_Surg_or_No_Readmit" = "0",
"Unplan_Readmit_Same" = "1",
"Plan_Readmit_Same" = "2",
"PlanUnplan_Same" = "3",
"Unknown" = "4")) %>%
mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
"None" = "0",
"Beam Radiation" = "1",
"Radioactive Implants" = "2",
"Radioisotopes" = "3",
"Beam + Imp or Isotopes" = "4",
"Radiation, NOS" = "5",
"Unknown" = "9")) %>%
mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
"Alive_30" = "0",
"Dead_30" = "1",
"Unknown" = "9")) %>%
mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
"Alive_90" = "0",
"Dead_90" = "1",
"Unknown" = "9")) %>%
mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
"Neg_LymphVasc_Inv" = "0",
"Pos_LumphVasc_Inv" = "1",
"N_A" = "8",
"Unknown" = "9")) %>%
mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
"No_Surg" = "0",
"Robot_Assist" = "1",
"Robot_to_Open" = "2",
"Endo_Lap" = "3",
"Endo_Lap_to_Open" = "4",
"Open_Unknown" = "5",
"Unknown" = "9")) %>%
mutate(All = "All") %>%
mutate(All = factor(All)) %>%
mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
"Surg performed" = "0",
"Surg not recommended" = "1",
"No surg due to pt factors" = "2",
"No surg, pt died" = "5",
"Surg rec, not done" = "6",
"Surg rec, pt refused" = "7",
"Surg rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
"Yes",
ifelse(REASON_FOR_NO_SURGERY == "9",
"Ukn",
"No"))) %>%
mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
SURGERY_YN == "No" ~ FALSE,
TRUE ~ NA)) %>%
mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
"Rad performed" = "0",
"Rad not recommended" = "1",
"No Rad due to pt factors" = "2",
"No Rad, pt died" = "5",
"Rad rec, not done" = "6",
"Rad rec, pt refused" = "7",
"Rad rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
"Yes",
ifelse(REASON_FOR_NO_RADIATION == "9",
NA,
"No"))) %>%
mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
"None or Surg or Rad" = "0",
"Rad before Surg" = "2",
"Surg before Rad" = "3",
"Rad before and after Surg" = "4",
"Intraop Rad" = "5",
"Intraop Rad plus other" = "6",
"Unknown" = "9")) %>%
mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Surg Alone",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Rad Alone",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
"No Treatment",
ifelse(RX_SUMM_SURGRAD_SEQ == "2",
"Rad then Surg",
ifelse(RX_SUMM_SURGRAD_SEQ == "3",
"Surg then Rad",
ifelse(RX_SUMM_SURGRAD_SEQ == "4",
"Rad before and after Surg",
"Other"))))))) %>%
mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
"Surg Alone",
"Surg then Rad",
"Rad Alone")) %>%
mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01", "02", "03"),
"Ukn" = c("88", "99"))) %>%
mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Surg, No rad, No Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Rad, No Surg, No Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"No Surg, No Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
"Rad then Surg, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
"Surg then Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
"Rad before and after Surg, No Chemo",
ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Surg, No rad, Yes Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Rad, No Surg, Yes Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"No Surg, No Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
"Rad then Surg, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
"Surg then Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
"Rad before and after Surg, Yes Chemo",
"Other"))))))))))))) %>%
mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
mutate(T_SIZE = ifelse(T_SIZE == 0,
"No Tumor",
ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
"< 1 cm",
ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
"1-2 cm",
ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
"2-3 cm",
ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
"3-4 cm",
ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
"4-5 cm",
ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
"5-6 cm",
ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
T_SIZE == 980 | T_SIZE == 989 |
T_SIZE == 997,
">6 cm",
ifelse(T_SIZE == 988 | T_SIZE == 999,
"NA_unk",
"Microscopic focus")))))))))) %>%
mutate(T_SIZE = factor(T_SIZE)) %>%
mutate(T_SIZE = fct_relevel(T_SIZE,
"No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
"4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
CS_METS_DX_BONE == "1" ~ "Bone",
CS_METS_DX_BRAIN == "1" ~ "Brain",
CS_METS_DX_LIVER == "1" ~ "Liver",
TRUE ~ "None/Other/Unk/NA")) %>%
mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
"Non-Expansion State" = "0",
"Jan 2014 Expansion States" = "1",
"Early Expansion States (2010-13)" = "2",
"Late Expansion States (> Jan 2014)" = "3",
"Suppressed for Ages 0 - 39" = "9")) %>%
mutate(EXPN_GROUP = case_when(MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in%
c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013")) %>%
mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>%
mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE,
ifelse(CHEMO_YN == "Ukn", NA,
TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
"HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
"CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
"BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
"MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
mutate_at(fact_vars_2, funs(factor(.)))
Table of variables for all cases:
p_table(data,
vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY", "AGE", "AGE_F", "AGE_40",
"SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F",
"INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
"SITE_TEXT", "BEHAVIOR", "GRADE_F",
"DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
"READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS",
"LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
"SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
"MEDICAID_EXPN_CODE", "EXPN_GROUP"))
| n |
|
1391 |
| FACILITY_TYPE_F (%) |
Community Cancer Program |
41 ( 2.9) |
|
Comprehensive Comm Ca Program |
251 ( 18.0) |
|
Academic/Research Program |
499 ( 35.9) |
|
Integrated Network Ca Program |
94 ( 6.8) |
|
NA |
506 ( 36.4) |
| FACILITY_LOCATION_F (%) |
New England |
49 ( 3.5) |
|
Middle Atlantic |
138 ( 9.9) |
|
South Atlantic |
172 ( 12.4) |
|
East North Central |
118 ( 8.5) |
|
East South Central |
39 ( 2.8) |
|
West North Central |
76 ( 5.5) |
|
West South Central |
79 ( 5.7) |
|
Mountain |
32 ( 2.3) |
|
Pacific |
182 ( 13.1) |
|
NA |
506 ( 36.4) |
| FACILITY_GEOGRAPHY (%) |
Northeast |
187 ( 13.4) |
|
South |
251 ( 18.0) |
|
Midwest |
233 ( 16.8) |
|
West |
214 ( 15.4) |
|
NA |
506 ( 36.4) |
| AGE (mean (sd)) |
|
46.39 (20.80) |
| AGE_F (%) |
(0,54] |
875 ( 62.9) |
|
(54,64] |
229 ( 16.5) |
|
(64,74] |
161 ( 11.6) |
|
(74,100] |
126 ( 9.1) |
| AGE_40 (%) |
(0,40] |
527 ( 37.9) |
|
(40,100] |
864 ( 62.1) |
| SEX_F (%) |
Male |
933 ( 67.1) |
|
Female |
458 ( 32.9) |
| RACE_F (%) |
White |
1064 ( 76.5) |
|
Black |
154 ( 11.1) |
|
Other/Unk |
56 ( 4.0) |
|
Asian |
117 ( 8.4) |
| HISPANIC (%) |
No |
999 ( 71.8) |
|
Yes |
328 ( 23.6) |
|
Unknown |
64 ( 4.6) |
| INSURANCE_F (%) |
Private |
697 ( 50.1) |
|
None |
132 ( 9.5) |
|
Medicaid |
220 ( 15.8) |
|
Medicare |
274 ( 19.7) |
|
Other Government |
28 ( 2.0) |
|
Unknown |
40 ( 2.9) |
| INCOME_F (%) |
Less than $38,000 |
252 ( 18.1) |
|
$38,000 - $47,999 |
314 ( 22.6) |
|
$48,000 - $62,999 |
379 ( 27.2) |
|
$63,000 + |
433 ( 31.1) |
|
NA |
13 ( 0.9) |
| EDUCATION_F (%) |
21% or more |
326 ( 23.4) |
|
13 - 20.9% |
369 ( 26.5) |
|
7 - 12.9% |
392 ( 28.2) |
|
Less than 7% |
293 ( 21.1) |
|
NA |
11 ( 0.8) |
| U_R_F (%) |
Metro |
1169 ( 84.0) |
|
Urban |
161 ( 11.6) |
|
Rural |
21 ( 1.5) |
|
NA |
40 ( 2.9) |
| CROWFLY (mean (sd)) |
|
42.53 (135.38) |
| CDCC_TOTAL_BEST (%) |
0 |
1186 ( 85.3) |
|
1 |
155 ( 11.1) |
|
2 |
30 ( 2.2) |
|
3 |
20 ( 1.4) |
| SITE_TEXT (%) |
C00.0 External Lip: Upper NOS |
0 ( 0.0) |
|
C00.1 External Lip: Lower NOS |
0 ( 0.0) |
|
C00.2 External Lip: NOS |
0 ( 0.0) |
|
C00.3 Lip: Upper Mucosa |
0 ( 0.0) |
|
C00.4 Lip: Lower Mucosa |
0 ( 0.0) |
|
C00.5 Lip: Mucosa NOS |
0 ( 0.0) |
|
C00.6 Lip: Commissure |
0 ( 0.0) |
|
C00.8 Lip: Overlapping |
0 ( 0.0) |
|
C00.9 Lip NOS |
0 ( 0.0) |
|
C01.9 Tongue: Base NOS |
5 ( 0.4) |
|
C02.0 Tongue: Dorsal NOS |
0 ( 0.0) |
|
C02.1 Tongue: Border, Tip |
1 ( 0.1) |
|
C02.2 Tongue: Ventral NOS |
0 ( 0.0) |
|
C02.3 Tongue: Anterior NOS |
0 ( 0.0) |
|
C02.4 Lingual Tonsil |
0 ( 0.0) |
|
C02.8 Tongue: Overlapping |
0 ( 0.0) |
|
C02.9 Tongue: NOS |
1 ( 0.1) |
|
C03.0 Gum: Upper |
1 ( 0.1) |
|
C03.1 Gum: Lower |
0 ( 0.0) |
|
C03.9 Gum NOS |
1 ( 0.1) |
|
C04.0 Mouth: Anterior Floor |
0 ( 0.0) |
|
C04.1 Mouth: Lateral Floor |
0 ( 0.0) |
|
C04.9 Floor of Mouth NOS |
1 ( 0.1) |
|
C05.0 Hard Palate |
15 ( 1.1) |
|
C05.1 Soft Palate NOS |
9 ( 0.6) |
|
C05.2 Uvula |
0 ( 0.0) |
|
C05.8 Palate: Overlapping |
2 ( 0.1) |
|
C05.9 Palate NOS |
4 ( 0.3) |
|
C06.0 Cheek Mucosa |
3 ( 0.2) |
|
C06.1 Mouth: Vestibule |
2 ( 0.1) |
|
C06.2 Retromolar Area |
0 ( 0.0) |
|
C06.8 Mouth: Other Overlapping |
0 ( 0.0) |
|
C06.9 Mouth NOS |
1 ( 0.1) |
|
C07.9 Parotid Gland |
1 ( 0.1) |
|
C09.8 Tonsil: Overlapping |
1 ( 0.1) |
|
C09.9 Tonsil NOS |
9 ( 0.6) |
|
C11.1 Nasopharynx: Poster Wall |
2 ( 0.1) |
|
C14.2 Waldeyer Ring |
4 ( 0.3) |
|
C30.0 Nasal Cavity |
572 ( 41.1) |
|
C37.9 Thymus |
4 ( 0.3) |
|
C42.2 Spleen |
4 ( 0.3) |
|
C77.0 Lymph Nodes: HeadFaceNeck |
75 ( 5.4) |
|
C77.1 Intrathoracic Lymph Nodes |
97 ( 7.0) |
|
C77.2 Intra-abdominal LymphNodes |
27 ( 1.9) |
|
C77.3 Lymph Nodes of axilla or arm |
26 ( 1.9) |
|
C77.4 Lymph Nodes: Leg |
20 ( 1.4) |
|
C77.5 Pelvic Lymph Nodes |
6 ( 0.4) |
|
C77.8 Lymph Nodes: multiple region |
226 ( 16.2) |
|
C77.9 Lymph Node NOS |
271 ( 19.5) |
| BEHAVIOR (%) |
2 |
0 ( 0.0) |
|
3 |
1391 (100.0) |
| GRADE_F (%) |
Gr I: Well Diff |
0 ( 0.0) |
|
Gr II: Mod Diff |
0 ( 0.0) |
|
Gr III: Poor Diff |
2 ( 0.1) |
|
Gr IV: Undiff/Anaplastic |
1 ( 0.1) |
|
5 |
458 ( 32.9) |
|
6 |
122 ( 8.8) |
|
7 |
5 ( 0.4) |
|
8 |
620 ( 44.6) |
|
NA/Unkown |
183 ( 13.2) |
| DX_STAGING_PROC_DAYS (mean (sd)) |
|
2.64 (26.52) |
| TNM_CLIN_T (%) |
N_A |
1319 ( 94.8) |
|
c0 |
0 ( 0.0) |
|
c1 |
0 ( 0.0) |
|
c1A |
0 ( 0.0) |
|
c1B |
0 ( 0.0) |
|
c1C |
0 ( 0.0) |
|
c1MI |
0 ( 0.0) |
|
c2 |
1 ( 0.1) |
|
c2A |
0 ( 0.0) |
|
c2B |
0 ( 0.0) |
|
c2C |
0 ( 0.0) |
|
c2D |
0 ( 0.0) |
|
c3 |
0 ( 0.0) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c4 |
0 ( 0.0) |
|
c4A |
0 ( 0.0) |
|
c4B |
0 ( 0.0) |
|
c4C |
0 ( 0.0) |
|
c4D |
0 ( 0.0) |
|
cX |
9 ( 0.6) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
NA |
62 ( 4.5) |
| TNM_CLIN_N (%) |
N_A |
1319 ( 94.8) |
|
c0 |
1 ( 0.1) |
|
c1 |
0 ( 0.0) |
|
c1A |
0 ( 0.0) |
|
c1B |
0 ( 0.0) |
|
c2 |
0 ( 0.0) |
|
c2A |
0 ( 0.0) |
|
c2B |
0 ( 0.0) |
|
c2C |
0 ( 0.0) |
|
c3 |
0 ( 0.0) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c3C |
0 ( 0.0) |
|
c4 |
0 ( 0.0) |
|
cX |
9 ( 0.6) |
|
NA |
62 ( 4.5) |
| TNM_CLIN_M (%) |
N_A |
1319 ( 94.8) |
|
c0 |
10 ( 0.7) |
|
c0I+ |
0 ( 0.0) |
|
c1 |
0 ( 0.0) |
|
c1A |
0 ( 0.0) |
|
c1B |
0 ( 0.0) |
|
c1C |
0 ( 0.0) |
|
NA |
62 ( 4.5) |
| TNM_CLIN_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
197 ( 14.2) |
|
1A |
173 ( 12.4) |
|
1B |
40 ( 2.9) |
|
1C |
0 ( 0.0) |
|
2 |
108 ( 7.8) |
|
2A |
72 ( 5.2) |
|
2B |
53 ( 3.8) |
|
2C |
0 ( 0.0) |
|
3 |
39 ( 2.8) |
|
3A |
33 ( 2.4) |
|
3B |
24 ( 1.7) |
|
3C |
0 ( 0.0) |
|
4 |
202 ( 14.5) |
|
4A |
102 ( 7.3) |
|
4A1 |
0 ( 0.0) |
|
4A2 |
0 ( 0.0) |
|
4B |
111 ( 8.0) |
|
4C |
0 ( 0.0) |
|
N_A |
8 ( 0.6) |
|
99 |
229 ( 16.5) |
| TNM_PATH_T (%) |
N_A |
1291 ( 92.8) |
|
p0 |
0 ( 0.0) |
|
p1 |
0 ( 0.0) |
|
p1A |
0 ( 0.0) |
|
p1B |
0 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
1 ( 0.1) |
|
p2A |
0 ( 0.0) |
|
p2B |
0 ( 0.0) |
|
p2C |
0 ( 0.0) |
|
p2D |
0 ( 0.0) |
|
p3 |
0 ( 0.0) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p4 |
0 ( 0.0) |
|
p4A |
0 ( 0.0) |
|
p4B |
0 ( 0.0) |
|
p4C |
0 ( 0.0) |
|
p4D |
0 ( 0.0) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
pX |
9 ( 0.6) |
|
NA |
90 ( 6.5) |
| TNM_PATH_N (%) |
N_A |
1290 ( 92.7) |
|
p0 |
0 ( 0.0) |
|
p0I- |
0 ( 0.0) |
|
p0I+ |
0 ( 0.0) |
|
p0M- |
0 ( 0.0) |
|
p0M+ |
0 ( 0.0) |
|
p1 |
0 ( 0.0) |
|
p1A |
0 ( 0.0) |
|
p1B |
0 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
0 ( 0.0) |
|
p2A |
0 ( 0.0) |
|
p2B |
0 ( 0.0) |
|
p2C |
0 ( 0.0) |
|
p3 |
0 ( 0.0) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p3C |
0 ( 0.0) |
|
p4 |
0 ( 0.0) |
|
pX |
10 ( 0.7) |
|
NA |
91 ( 6.5) |
| TNM_PATH_M (%) |
N_A |
1247 ( 89.6) |
|
p0 |
0 ( 0.0) |
|
p1 |
0 ( 0.0) |
|
p1A |
0 ( 0.0) |
|
p1B |
0 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
pX |
10 ( 0.7) |
|
NA |
134 ( 9.6) |
| TNM_PATH_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
86 ( 6.2) |
|
1A |
48 ( 3.5) |
|
1B |
15 ( 1.1) |
|
1C |
0 ( 0.0) |
|
2 |
41 ( 2.9) |
|
2A |
20 ( 1.4) |
|
2B |
14 ( 1.0) |
|
2C |
0 ( 0.0) |
|
3 |
16 ( 1.2) |
|
3A |
6 ( 0.4) |
|
3B |
5 ( 0.4) |
|
3C |
0 ( 0.0) |
|
4 |
88 ( 6.3) |
|
4A |
33 ( 2.4) |
|
4A1 |
0 ( 0.0) |
|
4B |
41 ( 2.9) |
|
4C |
0 ( 0.0) |
|
N_A |
8 ( 0.6) |
|
99 |
858 ( 61.7) |
|
NA |
112 ( 8.1) |
| DX_RX_STARTED_DAYS (mean (sd)) |
|
23.96 (33.28) |
| DX_SURG_STARTED_DAYS (mean (sd)) |
|
4.93 (25.21) |
| DX_DEFSURG_STARTED_DAYS (mean (sd)) |
|
5.48 (25.57) |
| MARGINS (%) |
No Residual |
24 ( 1.7) |
|
Residual, NOS |
10 ( 0.7) |
|
Microscopic Resid |
0 ( 0.0) |
|
Macroscopic Resid |
8 ( 0.6) |
|
Not evaluable |
34 ( 2.4) |
|
No surg |
940 ( 67.6) |
|
Unknown |
375 ( 27.0) |
| MARGINS_YN (%) |
No |
24 ( 1.7) |
|
Yes |
18 ( 1.3) |
|
No surg/Unk/NA |
1349 ( 97.0) |
| SURG_DISCHARGE_DAYS (mean (sd)) |
|
4.33 (10.80) |
| READM_HOSP_30_DAYS_F (%) |
No_Surg_or_No_Readmit |
1331 ( 95.7) |
|
Unplan_Readmit_Same |
13 ( 0.9) |
|
Plan_Readmit_Same |
10 ( 0.7) |
|
PlanUnplan_Same |
1 ( 0.1) |
|
9 |
36 ( 2.6) |
| RX_SUMM_RADIATION_F (%) |
None |
816 ( 58.7) |
|
Beam Radiation |
563 ( 40.5) |
|
Radioactive Implants |
0 ( 0.0) |
|
Radioisotopes |
0 ( 0.0) |
|
Beam + Imp or Isotopes |
0 ( 0.0) |
|
Radiation, NOS |
3 ( 0.2) |
|
Unknown |
9 ( 0.6) |
| PUF_30_DAY_MORT_CD_F (%) |
Alive_30 |
224 ( 16.1) |
|
Dead_30 |
11 ( 0.8) |
|
Unknown |
3 ( 0.2) |
|
NA |
1153 ( 82.9) |
| PUF_90_DAY_MORT_CD_F (%) |
Alive_90 |
205 ( 14.7) |
|
Dead_90 |
30 ( 2.2) |
|
Unknown |
3 ( 0.2) |
|
NA |
1153 ( 82.9) |
| DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) |
|
37.80 (41.55) |
| LYMPH_VASCULAR_INVASION_F (%) |
Neg_LymphVasc_Inv |
0 ( 0.0) |
|
Pos_LumphVasc_Inv |
0 ( 0.0) |
|
N_A |
689 ( 49.5) |
|
Unknown |
0 ( 0.0) |
|
NA |
702 ( 50.5) |
| RX_HOSP_SURG_APPR_2010_F (%) |
No_Surg |
419 ( 30.1) |
|
Robot_Assist |
1 ( 0.1) |
|
Robot_to_Open |
0 ( 0.0) |
|
Endo_Lap |
37 ( 2.7) |
|
Endo_Lap_to_Open |
0 ( 0.0) |
|
Open_Unknown |
31 ( 2.2) |
|
Unknown |
201 ( 14.5) |
|
NA |
702 ( 50.5) |
| SURG_RAD_SEQ (%) |
Surg Alone |
126 ( 9.1) |
|
Surg then Rad |
111 ( 8.0) |
|
Rad Alone |
425 ( 30.6) |
|
No Treatment |
659 ( 47.4) |
|
Other |
68 ( 4.9) |
|
Rad before and after Surg |
0 ( 0.0) |
|
Rad then Surg |
2 ( 0.1) |
| SURG_RAD_SEQ_C (%) |
Surg, No rad, No Chemo |
42 ( 3.0) |
|
Surg then Rad, No Chemo |
25 ( 1.8) |
|
Surg then Rad, Yes Chemo |
84 ( 6.0) |
|
Surg, No rad, Yes Chemo |
82 ( 5.9) |
|
No Surg, No Rad, Yes Chemo |
508 ( 36.5) |
|
No Surg, No Rad, No Chemo |
130 ( 9.3) |
|
Other |
101 ( 7.3) |
|
Rad, No Surg, Yes Chemo |
346 ( 24.9) |
|
Rad, No Surg, No Chemo |
71 ( 5.1) |
|
Rad then Surg, Yes Chemo |
2 ( 0.1) |
|
Rad then Surg, No Chemo |
0 ( 0.0) |
|
Rad before and after Surg, Yes Chemo |
0 ( 0.0) |
|
Rad before and after Surg, No Chemo |
0 ( 0.0) |
| SURGERY_YN (%) |
No |
1116 ( 80.2) |
|
Ukn |
33 ( 2.4) |
|
Yes |
242 ( 17.4) |
| RADIATION_YN (%) |
No |
806 ( 57.9) |
|
Yes |
566 ( 40.7) |
|
NA |
19 ( 1.4) |
| CHEMO_YN (%) |
No |
287 ( 20.6) |
|
Yes |
1066 ( 76.6) |
|
Ukn |
38 ( 2.7) |
| mets_at_dx (%) |
Bone |
0 ( 0.0) |
|
Brain |
0 ( 0.0) |
|
Liver |
0 ( 0.0) |
|
Lung |
0 ( 0.0) |
|
None/Other/Unk/NA |
1391 (100.0) |
| MEDICAID_EXPN_CODE (%) |
Non-Expansion State |
279 ( 20.1) |
|
Jan 2014 Expansion States |
281 ( 20.2) |
|
Early Expansion States (2010-13) |
231 ( 16.6) |
|
Late Expansion States (> Jan 2014) |
94 ( 6.8) |
|
Suppressed for Ages 0 - 39 |
506 ( 36.4) |
| EXPN_GROUP (%) |
Exclude |
506 ( 36.4) |
|
Post-Expansion |
183 ( 13.2) |
|
Pre-Expansion |
702 ( 50.5) |
p_table(no_Excludes,
vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY", "AGE", "AGE_F", "AGE_40",
"SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F",
"INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
"SITE_TEXT", "BEHAVIOR", "GRADE_F",
"DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
"READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS",
"LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
"SURG_RAD_SEQ_C", "T_SIZE", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
"MEDICAID_EXPN_CODE"),
strata = "EXPN_GROUP")
| n |
|
144 |
562 |
|
|
| FACILITY_TYPE_F (%) |
Community Cancer Program |
2 ( 1.4) |
11 ( 2.0) |
<0.001 |
|
|
Comprehensive Comm Ca Program |
39 ( 27.1) |
211 ( 37.5) |
|
|
|
Academic/Research Program |
90 ( 62.5) |
231 ( 41.1) |
|
|
|
Integrated Network Ca Program |
13 ( 9.0) |
109 ( 19.4) |
|
|
| FACILITY_LOCATION_F (%) |
New England |
18 ( 12.5) |
18 ( 3.2) |
<0.001 |
|
|
Middle Atlantic |
31 ( 21.5) |
94 ( 16.7) |
|
|
|
South Atlantic |
7 ( 4.9) |
118 ( 21.0) |
|
|
|
East North Central |
14 ( 9.7) |
112 ( 19.9) |
|
|
|
East South Central |
4 ( 2.8) |
40 ( 7.1) |
|
|
|
West North Central |
24 ( 16.7) |
54 ( 9.6) |
|
|
|
West South Central |
0 ( 0.0) |
46 ( 8.2) |
|
|
|
Mountain |
2 ( 1.4) |
37 ( 6.6) |
|
|
|
Pacific |
44 ( 30.6) |
43 ( 7.7) |
|
|
| FACILITY_GEOGRAPHY (%) |
Northeast |
49 ( 34.0) |
112 ( 19.9) |
<0.001 |
|
|
South |
7 ( 4.9) |
164 ( 29.2) |
|
|
|
Midwest |
42 ( 29.2) |
206 ( 36.7) |
|
|
|
West |
46 ( 31.9) |
80 ( 14.2) |
|
|
| AGE (mean (sd)) |
|
70.54 (12.26) |
70.72 (11.57) |
0.869 |
|
| AGE_F (%) |
(0,54] |
14 ( 9.7) |
55 ( 9.8) |
0.802 |
|
|
(54,64] |
31 ( 21.5) |
115 ( 20.5) |
|
|
|
(64,74] |
48 ( 33.3) |
169 ( 30.1) |
|
|
|
(74,100] |
51 ( 35.4) |
223 ( 39.7) |
|
|
| AGE_40 (%) |
(0,40] |
0 ( 0.0) |
2 ( 0.4) |
1.000 |
|
|
(40,100] |
144 (100.0) |
560 ( 99.6) |
|
|
| SEX_F (%) |
Male |
29 ( 20.1) |
104 ( 18.5) |
0.743 |
|
|
Female |
115 ( 79.9) |
458 ( 81.5) |
|
|
| RACE_F (%) |
White |
127 ( 88.2) |
508 ( 90.4) |
0.360 |
|
|
Black |
4 ( 2.8) |
12 ( 2.1) |
|
|
|
Other/Unk |
2 ( 1.4) |
16 ( 2.8) |
|
|
|
Asian |
11 ( 7.6) |
26 ( 4.6) |
|
|
| HISPANIC (%) |
No |
138 ( 95.8) |
511 ( 90.9) |
0.096 |
|
|
Yes |
4 ( 2.8) |
20 ( 3.6) |
|
|
|
Unknown |
2 ( 1.4) |
31 ( 5.5) |
|
|
| INSURANCE_F (%) |
Private |
52 ( 36.1) |
187 ( 33.3) |
0.900 |
|
|
None |
2 ( 1.4) |
9 ( 1.6) |
|
|
|
Medicaid |
4 ( 2.8) |
12 ( 2.1) |
|
|
|
Medicare |
85 ( 59.0) |
352 ( 62.6) |
|
|
|
Other Government |
1 ( 0.7) |
2 ( 0.4) |
|
|
| INCOME_F (%) |
Less than $38,000 |
11 ( 7.6) |
71 ( 12.6) |
<0.001 |
|
|
$38,000 - $47,999 |
22 ( 15.3) |
145 ( 25.8) |
|
|
|
$48,000 - $62,999 |
32 ( 22.2) |
149 ( 26.5) |
|
|
|
$63,000 + |
78 ( 54.2) |
195 ( 34.7) |
|
|
|
NA |
1 ( 0.7) |
2 ( 0.4) |
|
|
| EDUCATION_F (%) |
21% or more |
21 ( 14.6) |
69 ( 12.3) |
0.656 |
|
|
13 - 20.9% |
28 ( 19.4) |
120 ( 21.4) |
|
|
|
7 - 12.9% |
48 ( 33.3) |
215 ( 38.3) |
|
|
|
Less than 7% |
46 ( 31.9) |
156 ( 27.8) |
|
|
|
NA |
1 ( 0.7) |
2 ( 0.4) |
|
|
| U_R_F (%) |
Metro |
121 ( 84.0) |
471 ( 83.8) |
0.049 |
|
|
Urban |
13 ( 9.0) |
67 ( 11.9) |
|
|
|
Rural |
2 ( 1.4) |
14 ( 2.5) |
|
|
|
NA |
8 ( 5.6) |
10 ( 1.8) |
|
|
| CROWFLY (mean (sd)) |
|
31.80 (96.50) |
32.75 (91.19) |
0.912 |
|
| CDCC_TOTAL_BEST (%) |
0 |
112 ( 77.8) |
445 ( 79.2) |
0.968 |
|
|
1 |
26 ( 18.1) |
92 ( 16.4) |
|
|
|
2 |
4 ( 2.8) |
16 ( 2.8) |
|
|
|
3 |
2 ( 1.4) |
9 ( 1.6) |
|
|
| SITE_TEXT (%) |
C44.2 External ear |
0 ( 0.0) |
1 ( 0.2) |
0.634 |
|
|
C44.3 Skin of ear and unspecified parts of face |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
C44.4 Skin of scalp and neck |
1 ( 0.7) |
1 ( 0.2) |
|
|
|
C44.5 Skin of trunk |
29 ( 20.1) |
106 ( 18.9) |
|
|
|
C44.6 Skin of upper limb and shoulder |
2 ( 1.4) |
3 ( 0.5) |
|
|
|
C44.7 Skin of lower limb and hip |
2 ( 1.4) |
6 ( 1.1) |
|
|
|
C44.8 Overlapping lesion of skin |
1 ( 0.7) |
5 ( 0.9) |
|
|
|
C44.9 Skin, NOS |
2 ( 1.4) |
7 ( 1.2) |
|
|
|
C50.0 Nipple |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
C51.0 Labium majus |
12 ( 8.3) |
42 ( 7.5) |
|
|
|
C51.1 Labium minus |
2 ( 1.4) |
8 ( 1.4) |
|
|
|
C51.2 Clitoris |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
C51.8 Overlapping lesion of vulva |
3 ( 2.1) |
21 ( 3.7) |
|
|
|
C51.9 Vulva, NOS |
84 ( 58.3) |
348 ( 61.9) |
|
|
|
C60.8 Overlapping lesion of penis |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
C60.9 Penis |
4 ( 2.8) |
12 ( 2.1) |
|
|
| BEHAVIOR (%) |
3 |
144 (100.0) |
562 (100.0) |
NA |
|
| GRADE_F (%) |
Gr I: Well Diff |
5 ( 3.5) |
21 ( 3.7) |
0.885 |
|
|
Gr II: Mod Diff |
5 ( 3.5) |
13 ( 2.3) |
|
|
|
Gr III: Poor Diff |
3 ( 2.1) |
11 ( 2.0) |
|
|
|
NA/Unkown |
131 ( 91.0) |
517 ( 92.0) |
|
|
| DX_STAGING_PROC_DAYS (mean (sd)) |
|
1.36 (8.20) |
1.54 (13.80) |
0.890 |
|
| TNM_CLIN_T (%) |
c0 |
0 ( 0.0) |
2 ( 0.4) |
0.048 |
|
|
c1 |
18 ( 12.5) |
63 ( 11.2) |
|
|
|
c1A |
23 ( 16.0) |
74 ( 13.2) |
|
|
|
c1B |
32 ( 22.2) |
67 ( 11.9) |
|
|
|
c2 |
19 ( 13.2) |
75 ( 13.3) |
|
|
|
c3 |
0 ( 0.0) |
9 ( 1.6) |
|
|
|
c4 |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
cX |
45 ( 31.2) |
244 ( 43.4) |
|
|
|
pIS |
5 ( 3.5) |
16 ( 2.8) |
|
|
|
NA |
2 ( 1.4) |
11 ( 2.0) |
|
|
| TNM_CLIN_N (%) |
c0 |
126 ( 87.5) |
406 ( 72.2) |
0.001 |
|
|
c1 |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
c2C |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
cX |
17 ( 11.8) |
153 ( 27.2) |
|
|
|
NA |
0 ( 0.0) |
2 ( 0.4) |
|
|
| TNM_CLIN_M (%) |
c0 |
144 (100.0) |
562 (100.0) |
NA |
|
| TNM_CLIN_STAGE_GROUP (%) |
0 |
5 ( 3.5) |
32 ( 5.7) |
0.116 |
|
|
1 |
23 ( 16.0) |
90 ( 16.0) |
|
|
|
1A |
17 ( 11.8) |
57 ( 10.1) |
|
|
|
1B |
29 ( 20.1) |
60 ( 10.7) |
|
|
|
2 |
19 ( 13.2) |
75 ( 13.3) |
|
|
|
3 |
0 ( 0.0) |
5 ( 0.9) |
|
|
|
4 |
1 ( 0.7) |
1 ( 0.2) |
|
|
|
4A |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
4B |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
99 |
50 ( 34.7) |
240 ( 42.7) |
|
|
| TNM_PATH_T (%) |
p0 |
0 ( 0.0) |
4 ( 0.7) |
<0.001 |
|
|
p1 |
14 ( 9.7) |
37 ( 6.6) |
|
|
|
p1A |
23 ( 16.0) |
75 ( 13.3) |
|
|
|
p1B |
33 ( 22.9) |
72 ( 12.8) |
|
|
|
p2 |
12 ( 8.3) |
52 ( 9.3) |
|
|
|
p3 |
0 ( 0.0) |
5 ( 0.9) |
|
|
|
pIS |
2 ( 1.4) |
15 ( 2.7) |
|
|
|
pX |
29 ( 20.1) |
259 ( 46.1) |
|
|
|
NA |
31 ( 21.5) |
43 ( 7.7) |
|
|
| TNM_PATH_N (%) |
p0 |
30 ( 20.8) |
118 ( 21.0) |
<0.001 |
|
|
p1 |
0 ( 0.0) |
3 ( 0.5) |
|
|
|
p1B |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
p2C |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
pX |
70 ( 48.6) |
377 ( 67.1) |
|
|
|
NA |
43 ( 29.9) |
63 ( 11.2) |
|
|
| TNM_PATH_M (%) |
p1 |
0 ( 0.0) |
1 ( 0.2) |
<0.001 |
|
|
pX |
0 ( 0.0) |
255 ( 45.4) |
|
|
|
NA |
144 (100.0) |
306 ( 54.4) |
|
|
| TNM_PATH_STAGE_GROUP (%) |
0 |
2 ( 1.4) |
29 ( 5.2) |
<0.001 |
|
|
1 |
12 ( 8.3) |
46 ( 8.2) |
|
|
|
1A |
16 ( 11.1) |
48 ( 8.5) |
|
|
|
1B |
22 ( 15.3) |
37 ( 6.6) |
|
|
|
2 |
8 ( 5.6) |
42 ( 7.5) |
|
|
|
3 |
0 ( 0.0) |
8 ( 1.4) |
|
|
|
3A |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
4A |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
4B |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
99 |
65 ( 45.1) |
325 ( 57.8) |
|
|
|
NA |
18 ( 12.5) |
25 ( 4.4) |
|
|
| DX_RX_STARTED_DAYS (mean (sd)) |
|
49.87 (39.28) |
46.72 (169.07) |
0.830 |
|
| DX_SURG_STARTED_DAYS (mean (sd)) |
|
50.34 (40.61) |
45.44 (174.02) |
0.763 |
|
| DX_DEFSURG_STARTED_DAYS (mean (sd)) |
|
64.22 (81.18) |
56.07 (191.74) |
0.654 |
|
| MARGINS (%) |
No Residual |
59 ( 41.0) |
248 ( 44.1) |
0.096 |
|
|
Residual, NOS |
10 ( 6.9) |
67 ( 11.9) |
|
|
|
Microscopic Resid |
39 ( 27.1) |
152 ( 27.0) |
|
|
|
Macroscopic Resid |
2 ( 1.4) |
7 ( 1.2) |
|
|
|
Not evaluable |
4 ( 2.8) |
4 ( 0.7) |
|
|
|
No surg |
26 ( 18.1) |
66 ( 11.7) |
|
|
|
Unknown |
4 ( 2.8) |
18 ( 3.2) |
|
|
| MARGINS_YN (%) |
No |
59 ( 41.0) |
248 ( 44.1) |
0.077 |
|
|
Yes |
51 ( 35.4) |
226 ( 40.2) |
|
|
|
No surg/Unk/NA |
34 ( 23.6) |
88 ( 15.7) |
|
|
| SURG_DISCHARGE_DAYS (mean (sd)) |
|
1.57 (4.00) |
1.77 (6.61) |
0.756 |
|
| READM_HOSP_30_DAYS_F (%) |
No_Surg_or_No_Readmit |
137 ( 95.1) |
529 ( 94.1) |
0.349 |
|
|
Unplan_Readmit_Same |
2 ( 1.4) |
18 ( 3.2) |
|
|
|
Plan_Readmit_Same |
4 ( 2.8) |
6 ( 1.1) |
|
|
|
PlanUnplan_Same |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
9 |
1 ( 0.7) |
8 ( 1.4) |
|
|
| RX_SUMM_RADIATION_F (%) |
None |
138 ( 95.8) |
528 ( 94.0) |
0.149 |
|
|
Beam Radiation |
4 ( 2.8) |
27 ( 4.8) |
|
|
|
Radioactive Implants |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
Unknown |
1 ( 0.7) |
7 ( 1.2) |
|
|
| PUF_30_DAY_MORT_CD_F (%) |
Alive_30 |
111 ( 77.1) |
484 ( 86.1) |
0.015 |
|
|
Dead_30 |
1 ( 0.7) |
3 ( 0.5) |
|
|
|
Unknown |
6 ( 4.2) |
6 ( 1.1) |
|
|
|
NA |
26 ( 18.1) |
69 ( 12.3) |
|
|
| PUF_90_DAY_MORT_CD_F (%) |
Alive_90 |
110 ( 76.4) |
476 ( 84.7) |
0.093 |
|
|
Dead_90 |
1 ( 0.7) |
4 ( 0.7) |
|
|
|
Unknown |
7 ( 4.9) |
13 ( 2.3) |
|
|
|
NA |
26 ( 18.1) |
69 ( 12.3) |
|
|
| DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) |
|
30.92 (21.03) |
60.22 (38.34) |
<0.001 |
|
| LYMPH_VASCULAR_INVASION_F (%) |
Neg_LymphVasc_Inv |
44 ( 30.6) |
128 ( 22.8) |
<0.001 |
|
|
Pos_LumphVasc_Inv |
4 ( 2.8) |
9 ( 1.6) |
|
|
|
N_A |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
Unknown |
95 ( 66.0) |
170 ( 30.2) |
|
|
|
NA |
0 ( 0.0) |
255 ( 45.4) |
|
|
| RX_HOSP_SURG_APPR_2010_F (%) |
No_Surg |
26 ( 18.1) |
34 ( 6.0) |
<0.001 |
|
|
Robot_Assist |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
Endo_Lap |
3 ( 2.1) |
11 ( 2.0) |
|
|
|
Endo_Lap_to_Open |
0 ( 0.0) |
1 ( 0.2) |
|
|
|
Open_Unknown |
115 ( 79.9) |
260 ( 46.3) |
|
|
|
NA |
0 ( 0.0) |
255 ( 45.4) |
|
|
| SURG_RAD_SEQ (%) |
Surg Alone |
115 ( 79.9) |
485 ( 86.3) |
0.013 |
|
|
Surg then Rad |
2 ( 1.4) |
4 ( 0.7) |
|
|
|
Rad Alone |
3 ( 2.1) |
23 ( 4.1) |
|
|
|
No Treatment |
23 ( 16.0) |
41 ( 7.3) |
|
|
|
Other |
1 ( 0.7) |
9 ( 1.6) |
|
|
| SURG_RAD_SEQ_C (%) |
Surg, No rad, No Chemo |
112 ( 77.8) |
471 ( 83.8) |
0.060 |
|
|
Surg then Rad, No Chemo |
2 ( 1.4) |
4 ( 0.7) |
|
|
|
Surg, No rad, Yes Chemo |
1 ( 0.7) |
4 ( 0.7) |
|
|
|
No Surg, No Rad, Yes Chemo |
1 ( 0.7) |
0 ( 0.0) |
|
|
|
No Surg, No Rad, No Chemo |
21 ( 14.6) |
41 ( 7.3) |
|
|
|
Other |
4 ( 2.8) |
19 ( 3.4) |
|
|
|
Rad, No Surg, Yes Chemo |
0 ( 0.0) |
2 ( 0.4) |
|
|
|
Rad, No Surg, No Chemo |
3 ( 2.1) |
21 ( 3.7) |
|
|
| T_SIZE (%) |
Microscopic focus |
3 ( 2.1) |
9 ( 1.6) |
0.098 |
|
|
< 1 cm |
12 ( 8.3) |
52 ( 9.3) |
|
|
|
1-2 cm |
5 ( 3.5) |
48 ( 8.5) |
|
|
|
2-3 cm |
14 ( 9.7) |
39 ( 6.9) |
|
|
|
3-4 cm |
11 ( 7.6) |
57 ( 10.1) |
|
|
|
4-5 cm |
16 ( 11.1) |
28 ( 5.0) |
|
|
|
5-6 cm |
7 ( 4.9) |
28 ( 5.0) |
|
|
|
>6 cm |
20 ( 13.9) |
69 ( 12.3) |
|
|
|
NA_unk |
56 ( 38.9) |
232 ( 41.3) |
|
|
| SURGERY_YN (%) |
No |
26 ( 18.1) |
64 ( 11.4) |
0.072 |
|
|
Ukn |
0 ( 0.0) |
3 ( 0.5) |
|
|
|
Yes |
118 ( 81.9) |
495 ( 88.1) |
|
|
| RADIATION_YN (%) |
No |
138 ( 95.8) |
528 ( 94.0) |
0.671 |
|
|
Yes |
5 ( 3.5) |
27 ( 4.8) |
|
|
|
NA |
1 ( 0.7) |
7 ( 1.2) |
|
|
| CHEMO_YN (%) |
No |
139 ( 96.5) |
542 ( 96.4) |
0.912 |
|
|
Yes |
2 ( 1.4) |
6 ( 1.1) |
|
|
|
Ukn |
3 ( 2.1) |
14 ( 2.5) |
|
|
| mets_at_dx (%) |
None/Other/Unk/NA |
144 (100.0) |
562 (100.0) |
NA |
|
| MEDICAID_EXPN_CODE (%) |
Non-Expansion State |
0 ( 0.0) |
244 ( 43.4) |
<0.001 |
|
|
Jan 2014 Expansion States |
68 ( 47.2) |
172 ( 30.6) |
|
|
|
Early Expansion States (2010-13) |
76 ( 52.8) |
44 ( 7.8) |
|
|
|
Late Expansion States (> Jan 2014) |
0 ( 0.0) |
102 ( 18.1) |
|
|
p_table(data,
vars = c("YEAR_OF_DIAGNOSIS"),
strata = c("MEDICAID_EXPN_CODE"))
| n |
|
279 |
281 |
231 |
94 |
506 |
|
|
| YEAR_OF_DIAGNOSIS (%) |
2004 |
27 ( 9.7) |
21 ( 7.5) |
16 ( 6.9) |
10 (10.6) |
54 (10.7) |
NaN |
|
|
2005 |
28 (10.0) |
13 ( 4.6) |
18 ( 7.8) |
11 (11.7) |
56 (11.1) |
|
|
|
2006 |
24 ( 8.6) |
22 ( 7.8) |
17 ( 7.4) |
8 ( 8.5) |
43 ( 8.5) |
|
|
|
2007 |
13 ( 4.7) |
18 ( 6.4) |
20 ( 8.7) |
8 ( 8.5) |
34 ( 6.7) |
|
|
|
2008 |
35 (12.5) |
21 ( 7.5) |
23 (10.0) |
8 ( 8.5) |
38 ( 7.5) |
|
|
|
2009 |
20 ( 7.2) |
23 ( 8.2) |
21 ( 9.1) |
7 ( 7.4) |
45 ( 8.9) |
|
|
|
2010 |
18 ( 6.5) |
17 ( 6.0) |
21 ( 9.1) |
5 ( 5.3) |
46 ( 9.1) |
|
|
|
2011 |
20 ( 7.2) |
22 ( 7.8) |
13 ( 5.6) |
6 ( 6.4) |
33 ( 6.5) |
|
|
|
2012 |
19 ( 6.8) |
23 ( 8.2) |
14 ( 6.1) |
9 ( 9.6) |
50 ( 9.9) |
|
|
|
2013 |
23 ( 8.2) |
34 (12.1) |
21 ( 9.1) |
8 ( 8.5) |
42 ( 8.3) |
|
|
|
2014 |
24 ( 8.6) |
32 (11.4) |
25 (10.8) |
5 ( 5.3) |
44 ( 8.7) |
|
|
|
2015 |
28 (10.0) |
35 (12.5) |
22 ( 9.5) |
9 ( 9.6) |
21 ( 4.2) |
|
|
|
2016 |
0 ( 0.0) |
0 ( 0.0) |
0 ( 0.0) |
0 ( 0.0) |
0 ( 0.0) |
|
|
preExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 2.8488, df = 1, p-value = 0.09144
alternative hypothesis: two.sided
95 percent confidence interval:
-0.006895068 0.141405366
sample estimates:
prop 1 prop 2
0.3076923 0.2404372
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>%
filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>%
filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion
prop.test(c(preExpNoInsurance, postExpNoInsurance),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 0.041054, df = 1, p-value = 0.8394
alternative hypothesis: two.sided
95 percent confidence interval:
-0.05555195 0.03976568
sample estimates:
prop 1 prop 2
0.07407407 0.08196721
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")
| n |
|
144 |
562 |
|
|
| DX_RX_STARTED_DAYS (mean (sd)) |
|
49.87 (39.28) |
46.72 (169.07) |
0.830 |
|
data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")
Kaplan Meier Analysis
All
uni_var(test_var = "All", data_imp = data)
_________________________________________________
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
n events median 0.95LCL 0.95UCL
1391.0 687.0 40.4 31.0 61.9
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 843 440 0.671 0.0129 0.646 0.697
24 643 128 0.565 0.0138 0.539 0.593
36 507 57 0.513 0.0142 0.486 0.542
48 411 25 0.486 0.0144 0.459 0.515
60 348 8 0.476 0.0146 0.448 0.506
120 97 27 0.426 0.0162 0.395 0.459
## Univariable Cox Proportional Hazard Model for: All
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: All



Facility Type
uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
506 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program 41 27 14.5 5.98 34.8
FACILITY_TYPE_F=Comprehensive Comm Ca Program 251 142 19.4 13.14 42.5
FACILITY_TYPE_F=Academic/Research Program 499 286 23.6 17.15 33.3
FACILITY_TYPE_F=Integrated Network Ca Program 94 65 14.3 8.97 38.0
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
506 observations deleted due to missingness
FACILITY_TYPE_F=Community Cancer Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 16 0.570 0.0814 0.431 0.754
24 11 6 0.386 0.0831 0.253 0.589
36 7 4 0.246 0.0771 0.133 0.454
48 6 1 0.211 0.0736 0.106 0.418
60 4 0 0.211 0.0736 0.106 0.418
120 1 0 0.211 0.0736 0.106 0.418
FACILITY_TYPE_F=Comprehensive Comm Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 130 101 0.583 0.0318 0.524 0.649
24 101 22 0.481 0.0329 0.421 0.550
36 79 9 0.436 0.0331 0.376 0.506
48 66 4 0.412 0.0333 0.352 0.483
60 57 1 0.406 0.0334 0.346 0.477
120 20 4 0.375 0.0343 0.313 0.448
FACILITY_TYPE_F=Academic/Research Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 278 182 0.622 0.0222 0.580 0.667
24 196 54 0.497 0.0234 0.453 0.545
36 151 21 0.441 0.0237 0.397 0.490
48 115 13 0.402 0.0240 0.357 0.452
60 91 4 0.386 0.0243 0.341 0.437
120 22 12 0.314 0.0282 0.263 0.375
FACILITY_TYPE_F=Integrated Network Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46 41 0.548 0.0525 0.4538 0.661
24 33 11 0.415 0.0529 0.3236 0.533
36 27 2 0.389 0.0527 0.2986 0.507
48 20 4 0.326 0.0527 0.2376 0.448
60 18 1 0.310 0.0526 0.2223 0.432
120 1 5 0.163 0.0626 0.0765 0.346
## Univariable Cox Proportional Hazard Model for: FACILITY_TYPE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
n= 885, number of events= 520
(506 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.35827 0.69889 0.21022 -1.704 0.0883 .
FACILITY_TYPE_FAcademic/Research Program -0.35928 0.69818 0.20142 -1.784 0.0745 .
FACILITY_TYPE_FIntegrated Network Ca Program -0.07785 0.92510 0.22903 -0.340 0.7339
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program 0.6989 1.431 0.4629 1.055
FACILITY_TYPE_FAcademic/Research Program 0.6982 1.432 0.4705 1.036
FACILITY_TYPE_FIntegrated Network Ca Program 0.9251 1.081 0.5905 1.449
Concordance= 0.524 (se = 0.012 )
Rsquare= 0.007 (max possible= 0.999 )
Likelihood ratio test= 6.63 on 3 df, p=0.08486
Wald test = 7.1 on 3 df, p=0.06879
Score (logrank) test = 7.16 on 3 df, p=0.06703
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_TYPE_F



Facility Location
uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
506 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England 49 21 102.3 27.53 NA
FACILITY_LOCATION_F=Middle Atlantic 138 79 18.9 13.04 38.0
FACILITY_LOCATION_F=South Atlantic 172 109 18.1 13.08 26.2
FACILITY_LOCATION_F=East North Central 118 71 20.8 12.91 44.8
FACILITY_LOCATION_F=East South Central 39 28 13.2 6.41 93.9
FACILITY_LOCATION_F=West North Central 76 49 10.8 7.39 26.9
FACILITY_LOCATION_F=West South Central 79 44 21.2 12.19 76.5
FACILITY_LOCATION_F=Mountain 32 19 19.4 9.53 NA
FACILITY_LOCATION_F=Pacific 182 100 28.2 16.26 61.2
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
506 observations deleted due to missingness
FACILITY_LOCATION_F=New England
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 30 15 0.691 0.0664 0.573 0.834
24 26 2 0.643 0.0699 0.520 0.796
36 15 3 0.544 0.0797 0.408 0.725
48 13 0 0.544 0.0797 0.408 0.725
60 10 0 0.544 0.0797 0.408 0.725
120 1 1 0.435 0.1163 0.258 0.735
FACILITY_LOCATION_F=Middle Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 80 51 0.620 0.0420 0.542 0.708
24 54 19 0.465 0.0441 0.387 0.560
36 43 4 0.430 0.0441 0.352 0.526
48 35 3 0.400 0.0443 0.322 0.497
60 28 0 0.400 0.0443 0.322 0.497
120 8 2 0.369 0.0460 0.289 0.471
FACILITY_LOCATION_F=South Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 87 67 0.589 0.0387 0.518 0.670
24 56 23 0.426 0.0404 0.354 0.513
36 45 6 0.379 0.0402 0.308 0.466
48 32 6 0.324 0.0402 0.254 0.413
60 24 2 0.300 0.0406 0.230 0.391
120 7 5 0.225 0.0431 0.155 0.328
FACILITY_LOCATION_F=East North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 64 45 0.603 0.0461 0.519 0.700
24 46 12 0.489 0.0477 0.404 0.592
36 36 5 0.435 0.0482 0.350 0.540
48 25 4 0.383 0.0490 0.298 0.492
60 22 1 0.367 0.0495 0.281 0.478
120 5 3 0.285 0.0591 0.190 0.428
FACILITY_LOCATION_F=East South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 19 0.513 0.0800 0.378 0.696
24 16 3 0.432 0.0799 0.301 0.621
36 14 2 0.378 0.0785 0.251 0.568
48 11 2 0.324 0.0760 0.204 0.513
60 10 0 0.324 0.0760 0.204 0.513
120 2 2 0.252 0.0742 0.141 0.449
FACILITY_LOCATION_F=West North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 29 36 0.493 0.0606 0.387 0.627
24 22 6 0.389 0.0609 0.287 0.529
36 20 2 0.354 0.0603 0.254 0.494
48 16 2 0.317 0.0595 0.219 0.457
60 14 1 0.297 0.0589 0.201 0.438
120 3 2 0.251 0.0582 0.159 0.395
FACILITY_LOCATION_F=West South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40 29 0.608 0.0572 0.506 0.731
24 28 9 0.468 0.0603 0.363 0.602
36 23 2 0.433 0.0606 0.329 0.570
48 19 1 0.413 0.0610 0.309 0.552
60 15 1 0.391 0.0615 0.288 0.533
120 3 2 0.325 0.0676 0.216 0.488
FACILITY_LOCATION_F=Mountain
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16 12 0.614 0.0876 0.464 0.812
24 10 4 0.443 0.0966 0.289 0.679
36 8 1 0.399 0.0966 0.248 0.641
48 6 0 0.399 0.0966 0.248 0.641
60 5 1 0.332 0.1008 0.183 0.602
FACILITY_LOCATION_F=Pacific
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 108 66 0.631 0.0362 0.564 0.706
24 83 15 0.540 0.0378 0.471 0.620
36 60 11 0.463 0.0390 0.392 0.546
48 50 4 0.430 0.0395 0.359 0.515
60 42 0 0.430 0.0395 0.359 0.515
120 15 3 0.398 0.0407 0.325 0.486
## Univariable Cox Proportional Hazard Model for: FACILITY_LOCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
n= 885, number of events= 520
(506 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic 0.3339 1.3964 0.2456 1.360 0.1739
FACILITY_LOCATION_FSouth Atlantic 0.5430 1.7211 0.2384 2.278 0.0228 *
FACILITY_LOCATION_FEast North Central 0.4511 1.5700 0.2484 1.816 0.0694 .
FACILITY_LOCATION_FEast South Central 0.5836 1.7925 0.2888 2.021 0.0433 *
FACILITY_LOCATION_FWest North Central 0.6445 1.9051 0.2610 2.469 0.0135 *
FACILITY_LOCATION_FWest South Central 0.3738 1.4533 0.2653 1.409 0.1588
FACILITY_LOCATION_FMountain 0.4554 1.5769 0.3168 1.438 0.1505
FACILITY_LOCATION_FPacific 0.2672 1.3062 0.2401 1.113 0.2658
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic 1.396 0.7161 0.8630 2.260
FACILITY_LOCATION_FSouth Atlantic 1.721 0.5810 1.0787 2.746
FACILITY_LOCATION_FEast North Central 1.570 0.6370 0.9648 2.555
FACILITY_LOCATION_FEast South Central 1.793 0.5579 1.0177 3.157
FACILITY_LOCATION_FWest North Central 1.905 0.5249 1.1422 3.178
FACILITY_LOCATION_FWest South Central 1.453 0.6881 0.8640 2.444
FACILITY_LOCATION_FMountain 1.577 0.6342 0.8475 2.934
FACILITY_LOCATION_FPacific 1.306 0.7656 0.8160 2.091
Concordance= 0.537 (se = 0.013 )
Rsquare= 0.013 (max possible= 0.999 )
Likelihood ratio test= 12 on 8 df, p=0.1512
Wald test = 11.66 on 8 df, p=0.1672
Score (logrank) test = 11.79 on 8 df, p=0.1606
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_LOCATION_F



Facility Geography
uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
506 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 187 100 26.1 16.3 102.3
FACILITY_GEOGRAPHY=South 251 153 18.3 13.7 25.2
FACILITY_GEOGRAPHY=Midwest 233 148 14.5 10.8 24.5
FACILITY_GEOGRAPHY=West 214 119 26.6 16.6 49.8
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
506 observations deleted due to missingness
FACILITY_GEOGRAPHY=Northeast
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 110 66 0.638 0.0357 0.571 0.712
24 80 21 0.511 0.0379 0.441 0.591
36 58 7 0.462 0.0386 0.392 0.544
48 48 3 0.438 0.0389 0.368 0.521
60 38 0 0.438 0.0389 0.368 0.521
120 9 3 0.391 0.0439 0.314 0.487
FACILITY_GEOGRAPHY=South
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 127 96 0.595 0.0321 0.535 0.661
24 84 32 0.439 0.0336 0.378 0.510
36 68 8 0.395 0.0336 0.335 0.467
48 51 7 0.352 0.0337 0.291 0.424
60 39 3 0.329 0.0340 0.268 0.403
120 10 7 0.254 0.0376 0.190 0.339
FACILITY_GEOGRAPHY=Midwest
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 113 100 0.553 0.0335 0.491 0.622
24 84 21 0.449 0.0340 0.387 0.520
36 70 9 0.400 0.0340 0.339 0.473
48 52 8 0.352 0.0339 0.291 0.425
60 46 2 0.338 0.0339 0.278 0.411
120 10 7 0.268 0.0362 0.206 0.349
FACILITY_GEOGRAPHY=West
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 124 78 0.628 0.0335 0.566 0.697
24 93 19 0.527 0.0352 0.463 0.601
36 68 12 0.454 0.0361 0.389 0.531
48 56 4 0.426 0.0366 0.360 0.504
60 47 1 0.418 0.0367 0.352 0.497
120 15 4 0.376 0.0388 0.307 0.460
## Univariable Cox Proportional Hazard Model for: FACILITY_GEOGRAPHY
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
n= 885, number of events= 520
(506 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_GEOGRAPHYSouth 0.23723 1.26773 0.12864 1.844 0.0652 .
FACILITY_GEOGRAPHYMidwest 0.28222 1.32607 0.12948 2.180 0.0293 *
FACILITY_GEOGRAPHYWest 0.04101 1.04186 0.13567 0.302 0.7624
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth 1.268 0.7888 0.9852 1.631
FACILITY_GEOGRAPHYMidwest 1.326 0.7541 1.0288 1.709
FACILITY_GEOGRAPHYWest 1.042 0.9598 0.7986 1.359
Concordance= 0.531 (se = 0.013 )
Rsquare= 0.008 (max possible= 0.999 )
Likelihood ratio test= 7.43 on 3 df, p=0.05934
Wald test = 7.36 on 3 df, p=0.06122
Score (logrank) test = 7.4 on 3 df, p=0.06023
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_GEOGRAPHY



Age Group
uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n events median 0.95LCL 0.95UCL
AGE_F=(0,54] 875 349 NA 99.06 NA
AGE_F=(54,64] 229 131 26.87 18.37 38.87
AGE_F=(64,74] 161 105 14.62 9.99 23.23
AGE_F=(74,100] 126 102 5.52 3.68 9.13
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
AGE_F=(0,54]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 591 207 0.752 0.0150 0.723 0.782
24 461 79 0.648 0.0169 0.615 0.682
36 372 36 0.595 0.0176 0.562 0.631
48 312 9 0.580 0.0179 0.546 0.616
60 264 4 0.572 0.0181 0.537 0.609
120 77 14 0.529 0.0203 0.491 0.571
AGE_F=(54,64]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 133 81 0.635 0.0325 0.574 0.701
24 100 21 0.531 0.0342 0.468 0.602
36 66 15 0.443 0.0353 0.378 0.518
48 49 7 0.393 0.0360 0.329 0.471
60 41 2 0.377 0.0363 0.312 0.455
120 9 5 0.325 0.0381 0.258 0.409
AGE_F=(64,74]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 82 73 0.541 0.0396 0.469 0.624
24 56 19 0.411 0.0398 0.340 0.497
36 47 5 0.373 0.0396 0.303 0.459
48 38 3 0.348 0.0395 0.278 0.434
60 34 0 0.348 0.0395 0.278 0.434
120 8 4 0.298 0.0413 0.227 0.391
AGE_F=(74,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 37 79 0.3426 0.0438 0.2666 0.440
24 26 9 0.2581 0.0411 0.1889 0.353
36 22 1 0.2478 0.0407 0.1795 0.342
48 12 6 0.1749 0.0381 0.1141 0.268
60 9 2 0.1457 0.0369 0.0887 0.240
120 3 4 0.0756 0.0320 0.0330 0.173
## Univariable Cox Proportional Hazard Model for: AGE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
AGE_F(54,64] 0.5135 1.6711 0.1026 5.005 5.59e-07 ***
AGE_F(64,74] 0.7249 2.0645 0.1114 6.507 7.67e-11 ***
AGE_F(74,100] 1.3293 3.7783 0.1133 11.729 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64] 1.671 0.5984 1.367 2.043
AGE_F(64,74] 2.064 0.4844 1.660 2.568
AGE_F(74,100] 3.778 0.2647 3.026 4.718
Concordance= 0.61 (se = 0.01 )
Rsquare= 0.092 (max possible= 0.999 )
Likelihood ratio test= 134.5 on 3 df, p=0
Wald test = 154.6 on 3 df, p=0
Score (logrank) test = 170.8 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_F



Age Group
uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n events median 0.95LCL 0.95UCL
AGE_40=(0,40] 527 173 NA NA NA
AGE_40=(40,100] 864 514 19.8 16.4 25
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
AGE_40=(0,40]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 385 104 0.794 0.0180 0.759 0.830
24 313 37 0.714 0.0205 0.675 0.755
36 249 21 0.664 0.0217 0.623 0.708
48 210 3 0.655 0.0220 0.614 0.700
60 181 2 0.649 0.0223 0.606 0.694
120 54 6 0.617 0.0250 0.570 0.668
AGE_40=(40,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 458 336 0.597 0.0171 0.564 0.631
24 330 91 0.474 0.0178 0.441 0.510
36 258 36 0.420 0.0179 0.387 0.457
48 201 22 0.382 0.0180 0.349 0.419
60 167 6 0.370 0.0181 0.336 0.407
120 43 21 0.309 0.0198 0.272 0.350
## Univariable Cox Proportional Hazard Model for: AGE_40
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
AGE_40(40,100] 0.85539 2.35229 0.08815 9.704 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100] 2.352 0.4251 1.979 2.796
Concordance= 0.592 (se = 0.01 )
Rsquare= 0.073 (max possible= 0.999 )
Likelihood ratio test= 106 on 1 df, p=0
Wald test = 94.16 on 1 df, p=0
Score (logrank) test = 99.93 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_40



Gender
uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n events median 0.95LCL 0.95UCL
SEX_F=Male 933 447 49.8 33.8 80.8
SEX_F=Female 458 240 30.0 19.4 53.9
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
SEX_F=Male
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 583 270 0.697 0.0154 0.668 0.728
24 447 90 0.586 0.0169 0.554 0.620
36 345 43 0.527 0.0174 0.494 0.563
48 280 15 0.503 0.0177 0.469 0.539
60 241 6 0.491 0.0179 0.457 0.528
120 66 21 0.433 0.0201 0.395 0.474
SEX_F=Female
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 260 170 0.618 0.0231 0.574 0.665
24 196 38 0.524 0.0241 0.478 0.573
36 162 14 0.485 0.0245 0.439 0.535
48 131 10 0.453 0.0248 0.407 0.505
60 107 2 0.446 0.0250 0.400 0.498
120 31 6 0.414 0.0267 0.365 0.470
## Univariable Cox Proportional Hazard Model for: SEX_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
SEX_FFemale 0.15813 1.17131 0.08003 1.976 0.0482 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale 1.171 0.8537 1.001 1.37
Concordance= 0.526 (se = 0.009 )
Rsquare= 0.003 (max possible= 0.999 )
Likelihood ratio test= 3.84 on 1 df, p=0.05008
Wald test = 3.9 on 1 df, p=0.04819
Score (logrank) test = 3.91 on 1 df, p=0.04795
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SEX_F



RACE_F
uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n events median 0.95LCL 0.95UCL
RACE_F=White 1064 515 49.4 33.8 73.8
RACE_F=Black 154 93 19.8 15.3 36.2
RACE_F=Other/Unk 56 25 30.0 20.0 NA
RACE_F=Asian 117 54 60.9 23.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
RACE_F=White
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 649 329 0.678 0.0147 0.650 0.707
24 504 95 0.575 0.0158 0.545 0.607
36 398 44 0.523 0.0162 0.492 0.556
48 327 15 0.502 0.0165 0.471 0.535
60 277 7 0.491 0.0166 0.459 0.524
120 73 24 0.432 0.0188 0.397 0.470
RACE_F=Black
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 92 57 0.624 0.0394 0.551 0.706
24 66 20 0.483 0.0413 0.408 0.571
36 49 9 0.413 0.0414 0.339 0.502
48 39 5 0.370 0.0413 0.297 0.460
60 34 1 0.360 0.0414 0.287 0.451
120 11 1 0.348 0.0418 0.275 0.440
RACE_F=Other/Unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 33 16 0.699 0.0633 0.585 0.835
24 22 6 0.567 0.0707 0.444 0.724
36 17 3 0.487 0.0744 0.361 0.657
48 15 0 0.487 0.0744 0.361 0.657
60 11 0 0.487 0.0744 0.361 0.657
120 3 0 0.487 0.0744 0.361 0.657
RACE_F=Asian
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 69 38 0.659 0.0451 0.576 0.753
24 51 7 0.586 0.0478 0.499 0.688
36 43 1 0.574 0.0483 0.487 0.677
48 30 5 0.503 0.0518 0.411 0.615
60 26 0 0.503 0.0518 0.411 0.615
120 10 2 0.457 0.0564 0.359 0.582
## Univariable Cox Proportional Hazard Model for: RACE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
RACE_FBlack 0.27059 1.31074 0.11269 2.401 0.0163 *
RACE_FOther/Unk -0.04193 0.95894 0.20484 -0.205 0.8378
RACE_FAsian -0.03525 0.96537 0.14305 -0.246 0.8054
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack 1.3107 0.7629 1.0510 1.635
RACE_FOther/Unk 0.9589 1.0428 0.6418 1.433
RACE_FAsian 0.9654 1.0359 0.7293 1.278
Concordance= 0.516 (se = 0.009 )
Rsquare= 0.004 (max possible= 0.999 )
Likelihood ratio test= 5.81 on 3 df, p=0.1213
Wald test = 6.2 on 3 df, p=0.1023
Score (logrank) test = 6.24 on 3 df, p=0.1005
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RACE_F



Hispanic
uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n events median 0.95LCL 0.95UCL
HISPANIC=No 999 503 40.4 29.8 63.2
HISPANIC=Yes 328 142 76.5 31.6 NA
HISPANIC=Unknown 64 42 18.0 9.4 34.8
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
HISPANIC=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 623 311 0.678 0.0151 0.650 0.709
24 478 102 0.564 0.0162 0.533 0.597
36 385 38 0.517 0.0166 0.486 0.551
48 310 23 0.485 0.0169 0.453 0.519
60 266 7 0.473 0.0170 0.441 0.508
120 76 20 0.425 0.0186 0.390 0.463
HISPANIC=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 185 104 0.662 0.0272 0.611 0.717
24 142 16 0.602 0.0285 0.549 0.661
36 105 15 0.535 0.0301 0.479 0.598
48 87 0 0.535 0.0301 0.479 0.598
60 71 0 0.535 0.0301 0.479 0.598
120 17 7 0.460 0.0384 0.390 0.541
HISPANIC=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 35 25 0.602 0.0620 0.492 0.737
24 23 10 0.426 0.0643 0.317 0.573
36 17 4 0.349 0.0632 0.245 0.498
48 14 2 0.306 0.0624 0.205 0.456
60 11 1 0.284 0.0616 0.186 0.434
120 4 0 0.284 0.0616 0.186 0.434
## Univariable Cox Proportional Hazard Model for: HISPANIC
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
HISPANICYes -0.09001 0.91392 0.09508 -0.947 0.34380
HISPANICUnknown 0.41766 1.51840 0.16068 2.599 0.00934 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes 0.9139 1.0942 0.7585 1.101
HISPANICUnknown 1.5184 0.6586 1.1082 2.080
Concordance= 0.516 (se = 0.009 )
Rsquare= 0.005 (max possible= 0.999 )
Likelihood ratio test= 7.59 on 2 df, p=0.02252
Wald test = 8.44 on 2 df, p=0.0147
Score (logrank) test = 8.57 on 2 df, p=0.01379
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISPANIC



Insurance Status
uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n events median 0.95LCL 0.95UCL
INSURANCE_F=Private 697 310 97.7 55.62 NA
INSURANCE_F=None 132 62 23.2 12.25 NA
INSURANCE_F=Medicaid 220 94 99.1 35.29 NA
INSURANCE_F=Medicare 274 188 11.0 8.02 15.3
INSURANCE_F=Other Government 28 15 25.9 20.04 NA
INSURANCE_F=Unknown 40 18 76.5 33.28 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
INSURANCE_F=Private
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 475 174 0.742 0.0169 0.710 0.776
24 373 69 0.632 0.0189 0.596 0.670
36 302 34 0.572 0.0197 0.534 0.612
48 250 13 0.546 0.0201 0.508 0.587
60 221 4 0.537 0.0203 0.498 0.578
120 67 16 0.486 0.0223 0.444 0.532
INSURANCE_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 63 48 0.594 0.0456 0.511 0.691
24 46 10 0.496 0.0476 0.411 0.598
36 35 2 0.472 0.0481 0.387 0.577
48 28 1 0.458 0.0487 0.372 0.564
60 21 0 0.458 0.0487 0.372 0.564
120 5 1 0.431 0.0528 0.339 0.548
INSURANCE_F=Medicaid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 143 63 0.704 0.0314 0.645 0.768
24 104 18 0.609 0.0342 0.546 0.680
36 76 8 0.559 0.0358 0.493 0.633
48 64 2 0.544 0.0363 0.477 0.620
60 48 0 0.544 0.0363 0.477 0.620
120 11 3 0.488 0.0455 0.406 0.586
INSURANCE_F=Medicare
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 118 137 0.482 0.0309 0.425 0.547
24 83 26 0.372 0.0305 0.316 0.436
36 69 7 0.340 0.0302 0.285 0.404
48 49 8 0.298 0.0299 0.245 0.362
60 41 2 0.285 0.0299 0.232 0.350
120 10 6 0.234 0.0312 0.180 0.304
INSURANCE_F=Other Government
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 19 7 0.743 0.0839 0.595 0.927
24 15 3 0.619 0.0956 0.457 0.838
36 8 4 0.446 0.1013 0.286 0.696
48 6 0 0.446 0.1013 0.286 0.696
60 4 1 0.357 0.1137 0.191 0.666
120 1 0 0.357 0.1137 0.191 0.666
INSURANCE_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25 11 0.717 0.0725 0.588 0.874
24 22 2 0.658 0.0776 0.522 0.829
36 17 2 0.590 0.0831 0.448 0.778
48 14 1 0.553 0.0857 0.409 0.750
60 13 1 0.514 0.0882 0.367 0.719
120 3 1 0.467 0.0917 0.318 0.686
## Univariable Cox Proportional Hazard Model for: INSURANCE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
INSURANCE_FNone 0.34054 1.40570 0.13934 2.444 0.0145 *
INSURANCE_FMedicaid 0.02975 1.03019 0.11781 0.253 0.8006
INSURANCE_FMedicare 0.79072 2.20499 0.09273 8.527 <2e-16 ***
INSURANCE_FOther Government 0.22357 1.25054 0.26445 0.845 0.3979
INSURANCE_FUnknown 0.01393 1.01403 0.24246 0.057 0.9542
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone 1.406 0.7114 1.0698 1.847
INSURANCE_FMedicaid 1.030 0.9707 0.8178 1.298
INSURANCE_FMedicare 2.205 0.4535 1.8385 2.644
INSURANCE_FOther Government 1.251 0.7997 0.7447 2.100
INSURANCE_FUnknown 1.014 0.9862 0.6305 1.631
Concordance= 0.582 (se = 0.011 )
Rsquare= 0.05 (max possible= 0.999 )
Likelihood ratio test= 71.99 on 5 df, p=3.952e-14
Wald test = 79.88 on 5 df, p=8.882e-16
Score (logrank) test = 83.65 on 5 df, p=1.11e-16
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INSURANCE_F



Overall Survival pre/post-ACA expansion
uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 144 20 NA 82.8 NA
EXPN_GROUP=Pre-Expansion 562 145 132 125.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
EXPN_GROUP=Post-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 119 5 0.963 0.0163 0.931 0.995
24 85 9 0.880 0.0303 0.823 0.942
36 42 4 0.827 0.0386 0.755 0.906
48 28 1 0.799 0.0467 0.712 0.896
60 18 0 0.799 0.0467 0.712 0.896
EXPN_GROUP=Pre-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 498 20 0.963 0.00815 0.947 0.979
24 457 16 0.931 0.01111 0.909 0.953
36 394 20 0.888 0.01419 0.860 0.916
48 322 16 0.849 0.01652 0.818 0.882
60 253 25 0.778 0.02044 0.739 0.819
120 51 39 0.586 0.03289 0.525 0.655
## Univariable Cox Proportional Hazard Model for: EXPN_GROUP
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n= 706, number of events= 165
coef exp(coef) se(coef) z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2186 0.8036 0.2458 -0.889 0.374
exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion 0.8036 1.244 0.4964 1.301
Concordance= 0.519 (se = 0.016 )
Rsquare= 0.001 (max possible= 0.932 )
Likelihood ratio test= 0.75 on 1 df, p=0.3855
Wald test = 0.79 on 1 df, p=0.3739
Score (logrank) test = 0.79 on 1 df, p=0.373
## Unadjusted Kaplan Meier Overall Survival Curve for: EXPN_GROUP



Education
uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
11 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more 326 161 32.9 22.5 97.3
EDUCATION_F=13 - 20.9% 369 180 38.0 25.2 93.9
EDUCATION_F=7 - 12.9% 392 196 41.6 27.0 102.3
EDUCATION_F=Less than 7% 293 146 55.6 26.8 134.1
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
11 observations deleted due to missingness
EDUCATION_F=21% or more
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 193 107 0.656 0.0270 0.605 0.711
24 139 30 0.548 0.0290 0.494 0.608
36 101 15 0.485 0.0299 0.429 0.547
48 81 1 0.480 0.0300 0.424 0.542
60 69 1 0.474 0.0302 0.418 0.537
120 11 7 0.396 0.0389 0.327 0.480
EDUCATION_F=13 - 20.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 214 119 0.661 0.0254 0.613 0.713
24 162 31 0.562 0.0271 0.512 0.618
36 127 15 0.509 0.0278 0.457 0.566
48 101 6 0.483 0.0283 0.431 0.542
60 81 2 0.473 0.0286 0.420 0.533
120 30 6 0.432 0.0308 0.376 0.497
EDUCATION_F=7 - 12.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 241 126 0.669 0.0242 0.624 0.718
24 190 35 0.569 0.0258 0.521 0.622
36 156 15 0.522 0.0264 0.472 0.576
48 128 13 0.476 0.0269 0.426 0.532
60 112 2 0.469 0.0271 0.419 0.525
120 31 5 0.436 0.0291 0.382 0.497
EDUCATION_F=Less than 7%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 190 84 0.704 0.0271 0.653 0.760
24 147 32 0.583 0.0298 0.527 0.644
36 120 12 0.534 0.0304 0.478 0.597
48 98 5 0.510 0.0309 0.453 0.575
60 83 3 0.493 0.0314 0.436 0.559
120 23 9 0.426 0.0352 0.362 0.500
## Univariable Cox Proportional Hazard Model for: EDUCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
n= 1380, number of events= 683
(11 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
EDUCATION_F13 - 20.9% -0.02440 0.97590 0.10852 -0.225 0.822
EDUCATION_F7 - 12.9% -0.04748 0.95363 0.10648 -0.446 0.656
EDUCATION_FLess than 7% -0.07783 0.92513 0.11436 -0.681 0.496
exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9% 0.9759 1.025 0.7889 1.207
EDUCATION_F7 - 12.9% 0.9536 1.049 0.7740 1.175
EDUCATION_FLess than 7% 0.9251 1.081 0.7394 1.158
Concordance= 0.508 (se = 0.011 )
Rsquare= 0 (max possible= 0.999 )
Likelihood ratio test= 0.51 on 3 df, p=0.9159
Wald test = 0.51 on 3 df, p=0.916
Score (logrank) test = 0.51 on 3 df, p=0.916
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: EDUCATION_F



Urban/Rural
uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
40 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
U_R_F=Metro 1169 577 39.9 30.03 63.8
U_R_F=Urban 161 79 42.7 20.04 NA
U_R_F=Rural 21 14 15.6 3.75 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
40 observations deleted due to missingness
U_R_F=Metro
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 719 365 0.676 0.0140 0.650 0.704
24 547 112 0.567 0.0151 0.538 0.597
36 428 52 0.511 0.0155 0.482 0.542
48 351 16 0.491 0.0157 0.461 0.523
60 298 7 0.480 0.0158 0.450 0.512
120 86 23 0.431 0.0175 0.398 0.466
U_R_F=Urban
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 90 55 0.636 0.0393 0.563 0.717
24 71 11 0.555 0.0412 0.480 0.642
36 63 2 0.538 0.0416 0.462 0.626
48 47 8 0.465 0.0433 0.387 0.558
60 39 1 0.455 0.0435 0.377 0.549
120 9 2 0.427 0.0451 0.347 0.525
U_R_F=Rural
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 9 10 0.503 0.113 0.324 0.780
24 7 2 0.391 0.112 0.223 0.686
36 5 1 0.335 0.109 0.177 0.634
48 4 1 0.268 0.106 0.124 0.581
60 3 0 0.268 0.106 0.124 0.581
## Univariable Cox Proportional Hazard Model for: U_R_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
n= 1351, number of events= 670
(40 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
U_R_FUrban 0.03668 1.03736 0.11998 0.306 0.7598
U_R_FRural 0.57597 1.77886 0.27056 2.129 0.0333 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban 1.037 0.9640 0.820 1.312
U_R_FRural 1.779 0.5622 1.047 3.023
Concordance= 0.508 (se = 0.007 )
Rsquare= 0.003 (max possible= 0.999 )
Likelihood ratio test= 3.85 on 2 df, p=0.1459
Wald test = 4.57 on 2 df, p=0.1018
Score (logrank) test = 4.69 on 2 df, p=0.09575
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: U_R_F



Year
uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 128 68 48.1 19.48 NA
YEAR_OF_DIAGNOSIS=2005 126 68 51.3 27.89 NA
YEAR_OF_DIAGNOSIS=2006 114 61 34.3 15.34 NA
YEAR_OF_DIAGNOSIS=2007 93 55 21.6 12.91 NA
YEAR_OF_DIAGNOSIS=2008 125 67 25.9 20.34 NA
YEAR_OF_DIAGNOSIS=2009 116 69 27.0 13.83 76.5
YEAR_OF_DIAGNOSIS=2010 107 50 60.9 24.34 NA
YEAR_OF_DIAGNOSIS=2011 94 49 23.2 9.53 NA
YEAR_OF_DIAGNOSIS=2012 115 53 NA 21.22 NA
YEAR_OF_DIAGNOSIS=2013 128 57 NA 27.53 NA
YEAR_OF_DIAGNOSIS=2014 130 56 35.3 21.49 NA
YEAR_OF_DIAGNOSIS=2015 115 34 NA 27.37 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
YEAR_OF_DIAGNOSIS=2004
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 79 42 0.663 0.0424 0.585 0.752
24 64 13 0.553 0.0451 0.471 0.648
36 58 4 0.518 0.0455 0.436 0.615
48 56 2 0.500 0.0456 0.418 0.598
60 53 2 0.482 0.0457 0.400 0.581
120 33 4 0.443 0.0460 0.362 0.543
YEAR_OF_DIAGNOSIS=2005
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 87 35 0.718 0.0405 0.643 0.802
24 70 15 0.592 0.0446 0.510 0.686
36 64 5 0.549 0.0452 0.468 0.646
48 58 4 0.514 0.0456 0.432 0.612
60 55 2 0.497 0.0457 0.415 0.595
120 37 6 0.439 0.0461 0.358 0.540
YEAR_OF_DIAGNOSIS=2006
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 68 38 0.656 0.0453 0.573 0.751
24 54 12 0.540 0.0481 0.453 0.643
36 47 6 0.479 0.0487 0.392 0.584
48 44 2 0.458 0.0487 0.372 0.565
60 43 0 0.458 0.0487 0.372 0.565
120 21 3 0.412 0.0507 0.324 0.524
YEAR_OF_DIAGNOSIS=2007
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 58 35 0.622 0.0504 0.531 0.729
24 42 12 0.487 0.0524 0.395 0.602
36 36 5 0.429 0.0523 0.337 0.544
48 32 2 0.404 0.0521 0.314 0.520
60 31 0 0.404 0.0521 0.314 0.520
120 6 1 0.391 0.0520 0.301 0.508
YEAR_OF_DIAGNOSIS=2008
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 80 37 0.694 0.0420 0.616 0.781
24 61 17 0.544 0.0460 0.461 0.642
36 50 8 0.473 0.0464 0.390 0.573
48 43 0 0.473 0.0464 0.390 0.573
60 42 0 0.473 0.0464 0.390 0.573
YEAR_OF_DIAGNOSIS=2009
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 68 44 0.615 0.0456 0.532 0.711
24 53 11 0.515 0.0472 0.430 0.616
36 47 4 0.475 0.0475 0.390 0.578
48 43 4 0.435 0.0476 0.351 0.539
60 40 1 0.424 0.0476 0.340 0.528
YEAR_OF_DIAGNOSIS=2010
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 63 33 0.672 0.0469 0.586 0.771
24 55 7 0.597 0.0495 0.508 0.703
36 47 5 0.542 0.0507 0.451 0.651
48 44 2 0.519 0.0511 0.428 0.630
60 41 1 0.507 0.0514 0.416 0.618
YEAR_OF_DIAGNOSIS=2011
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46 39 0.556 0.0533 0.461 0.672
24 40 5 0.496 0.0540 0.400 0.614
36 35 1 0.483 0.0541 0.387 0.601
48 30 2 0.455 0.0544 0.360 0.575
60 24 1 0.440 0.0547 0.345 0.561
YEAR_OF_DIAGNOSIS=2012
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 70 37 0.670 0.0446 0.588 0.763
24 56 11 0.562 0.0478 0.476 0.664
36 47 3 0.531 0.0483 0.445 0.635
48 39 1 0.520 0.0486 0.433 0.625
60 19 1 0.504 0.0497 0.415 0.611
YEAR_OF_DIAGNOSIS=2013
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 84 37 0.705 0.0408 0.630 0.790
24 71 7 0.644 0.0433 0.565 0.735
36 55 8 0.571 0.0454 0.489 0.667
48 21 5 0.509 0.0484 0.422 0.613
YEAR_OF_DIAGNOSIS=2014
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 76 38 0.690 0.0421 0.612 0.777
24 50 11 0.579 0.0468 0.494 0.678
36 21 6 0.494 0.0520 0.402 0.607
48 1 1 0.453 0.0619 0.346 0.592
YEAR_OF_DIAGNOSIS=2015
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 64 25 0.753 0.0434 0.672 0.843
24 27 7 0.664 0.0497 0.573 0.768
## Univariable Cox Proportional Hazard Model for: YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 -0.03775 0.96295 0.17151 -0.220 0.826
YEAR_OF_DIAGNOSIS2006 0.07972 1.08298 0.17648 0.452 0.651
YEAR_OF_DIAGNOSIS2007 0.17314 1.18903 0.18161 0.953 0.340
YEAR_OF_DIAGNOSIS2008 0.05630 1.05791 0.17243 0.326 0.744
YEAR_OF_DIAGNOSIS2009 0.19520 1.21556 0.17133 1.139 0.255
YEAR_OF_DIAGNOSIS2010 -0.03895 0.96180 0.18681 -0.209 0.835
YEAR_OF_DIAGNOSIS2011 0.19929 1.22053 0.18800 1.060 0.289
YEAR_OF_DIAGNOSIS2012 -0.02436 0.97593 0.18396 -0.132 0.895
YEAR_OF_DIAGNOSIS2013 -0.08049 0.92267 0.18049 -0.446 0.656
YEAR_OF_DIAGNOSIS2014 0.02562 1.02595 0.18160 0.141 0.888
YEAR_OF_DIAGNOSIS2015 -0.30376 0.73804 0.21134 -1.437 0.151
YEAR_OF_DIAGNOSIS2016 NA NA 0.00000 NA NA
exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005 0.9630 1.0385 0.6880 1.348
YEAR_OF_DIAGNOSIS2006 1.0830 0.9234 0.7663 1.531
YEAR_OF_DIAGNOSIS2007 1.1890 0.8410 0.8329 1.697
YEAR_OF_DIAGNOSIS2008 1.0579 0.9453 0.7545 1.483
YEAR_OF_DIAGNOSIS2009 1.2156 0.8227 0.8688 1.701
YEAR_OF_DIAGNOSIS2010 0.9618 1.0397 0.6669 1.387
YEAR_OF_DIAGNOSIS2011 1.2205 0.8193 0.8444 1.764
YEAR_OF_DIAGNOSIS2012 0.9759 1.0247 0.6805 1.400
YEAR_OF_DIAGNOSIS2013 0.9227 1.0838 0.6478 1.314
YEAR_OF_DIAGNOSIS2014 1.0260 0.9747 0.7187 1.465
YEAR_OF_DIAGNOSIS2015 0.7380 1.3549 0.4877 1.117
YEAR_OF_DIAGNOSIS2016 NA NA NA NA
Concordance= 0.536 (se = 0.012 )
Rsquare= 0.007 (max possible= 0.999 )
Likelihood ratio test= 10.05 on 11 df, p=0.526
Wald test = 9.81 on 11 df, p=0.548
Score (logrank) test = 9.89 on 11 df, p=0.5406
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.



Primary Site
uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n events median 0.95LCL 0.95UCL
SITE_TEXT=C01.9 Tongue: Base NOS 5 3 17.84 13.60 NA
SITE_TEXT=C02.1 Tongue: Border, Tip 1 0 NA NA NA
SITE_TEXT=C02.9 Tongue: NOS 1 1 0.72 NA NA
SITE_TEXT=C03.0 Gum: Upper 1 1 9.17 NA NA
SITE_TEXT=C03.9 Gum NOS 1 0 NA NA NA
SITE_TEXT=C04.9 Floor of Mouth NOS 1 1 6.31 NA NA
SITE_TEXT=C05.0 Hard Palate 15 5 NA 5.26 NA
SITE_TEXT=C05.1 Soft Palate NOS 9 4 NA 8.11 NA
SITE_TEXT=C05.8 Palate: Overlapping 2 2 8.53 3.88 NA
SITE_TEXT=C05.9 Palate NOS 4 2 53.91 3.65 NA
SITE_TEXT=C06.0 Cheek Mucosa 3 2 1.87 0.99 NA
SITE_TEXT=C06.1 Mouth: Vestibule 2 2 3.58 2.27 NA
SITE_TEXT=C06.9 Mouth NOS 1 1 6.51 NA NA
SITE_TEXT=C07.9 Parotid Gland 1 1 12.16 NA NA
SITE_TEXT=C09.8 Tonsil: Overlapping 1 1 16.26 NA NA
SITE_TEXT=C09.9 Tonsil NOS 9 3 NA 8.64 NA
SITE_TEXT=C11.1 Nasopharynx: Poster Wall 2 0 NA NA NA
SITE_TEXT=C14.2 Waldeyer Ring 4 2 20.34 2.50 NA
SITE_TEXT=C30.0 Nasal Cavity 572 245 93.96 49.84 NA
SITE_TEXT=C37.9 Thymus 4 3 12.86 3.35 NA
SITE_TEXT=C42.2 Spleen 4 3 35.47 4.70 NA
SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck 75 33 68.27 26.18 NA
SITE_TEXT=C77.1 Intrathoracic Lymph Nodes 97 38 NA 61.90 NA
SITE_TEXT=C77.2 Intra-abdominal LymphNodes 27 23 6.28 3.78 51.3
SITE_TEXT=C77.3 Lymph Nodes of axilla or arm 26 11 NA 21.06 NA
SITE_TEXT=C77.4 Lymph Nodes: Leg 20 12 25.03 13.11 NA
SITE_TEXT=C77.5 Pelvic Lymph Nodes 6 6 1.97 1.18 NA
SITE_TEXT=C77.8 Lymph Nodes: multiple region 226 117 28.25 23.10 NA
SITE_TEXT=C77.9 Lymph Node NOS 271 165 19.48 14.29 29.8
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
SITE_TEXT=C01.9 Tongue: Base NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.800 0.179 0.5161 1
24 1 2 0.267 0.226 0.0507 1
36 1 0 0.267 0.226 0.0507 1
48 1 0 0.267 0.226 0.0507 1
60 1 0 0.267 0.226 0.0507 1
SITE_TEXT=C02.1 Tongue: Border, Tip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
SITE_TEXT=C02.9 Tongue: NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C03.0 Gum: Upper
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C03.9 Gum NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
SITE_TEXT=C04.9 Floor of Mouth NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C05.0 Hard Palate
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 5 0.583 0.142 0.362 0.941
24 5 0 0.583 0.142 0.362 0.941
36 5 0 0.583 0.142 0.362 0.941
48 3 0 0.583 0.142 0.362 0.941
60 3 0 0.583 0.142 0.362 0.941
SITE_TEXT=C05.1 Soft Palate NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 3 0.667 0.157 0.42 1.000
24 3 1 0.556 0.166 0.31 0.997
36 2 0 0.556 0.166 0.31 0.997
48 2 0 0.556 0.166 0.31 0.997
SITE_TEXT=C05.8 Palate: Overlapping
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12.000 1.000 1.000 0.500 0.354 0.125 1.000
SITE_TEXT=C05.9 Palate NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 1 0.667 0.272 0.2995 1
24 2 0 0.667 0.272 0.2995 1
36 2 0 0.667 0.272 0.2995 1
48 2 0 0.667 0.272 0.2995 1
60 1 1 0.333 0.272 0.0673 1
120 1 0 0.333 0.272 0.0673 1
SITE_TEXT=C06.0 Cheek Mucosa
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 2 0.333 0.272 0.0673 1
24 1 0 0.333 0.272 0.0673 1
36 1 0 0.333 0.272 0.0673 1
SITE_TEXT=C06.1 Mouth: Vestibule
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C06.9 Mouth NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C07.9 Parotid Gland
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
SITE_TEXT=C09.8 Tonsil: Overlapping
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
SITE_TEXT=C09.9 Tonsil NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 3 0.593 0.185 0.322 1
24 4 0 0.593 0.185 0.322 1
36 2 0 0.593 0.185 0.322 1
48 2 0 0.593 0.185 0.322 1
60 2 0 0.593 0.185 0.322 1
120 1 0 0.593 0.185 0.322 1
SITE_TEXT=C11.1 Nasopharynx: Poster Wall
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
SITE_TEXT=C14.2 Waldeyer Ring
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.426 1
24 2 1 0.50 0.250 0.188 1
36 2 0 0.50 0.250 0.188 1
48 1 0 0.50 0.250 0.188 1
60 1 0 0.50 0.250 0.188 1
120 1 0 0.50 0.250 0.188 1
SITE_TEXT=C30.0 Nasal Cavity
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 354 168 0.696 0.0197 0.658 0.735
24 273 38 0.617 0.0212 0.577 0.660
36 215 15 0.581 0.0219 0.540 0.626
48 166 13 0.543 0.0229 0.500 0.590
60 132 2 0.536 0.0231 0.493 0.583
120 33 8 0.489 0.0269 0.439 0.545
SITE_TEXT=C37.9 Thymus
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 2 0.50 0.250 0.1877 1
24 1 1 0.25 0.217 0.0458 1
36 1 0 0.25 0.217 0.0458 1
48 1 0 0.25 0.217 0.0458 1
60 1 0 0.25 0.217 0.0458 1
SITE_TEXT=C42.2 Spleen
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.4259 1
24 3 0 0.75 0.217 0.4259 1
36 2 1 0.50 0.250 0.1877 1
48 1 1 0.25 0.217 0.0458 1
60 1 0 0.25 0.217 0.0458 1
120 1 0 0.25 0.217 0.0458 1
SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 48 18 0.743 0.0524 0.647 0.853
24 37 7 0.628 0.0596 0.522 0.757
36 30 4 0.559 0.0623 0.450 0.696
48 28 1 0.541 0.0629 0.431 0.679
60 27 1 0.522 0.0636 0.411 0.662
120 8 2 0.481 0.0647 0.370 0.626
SITE_TEXT=C77.1 Intrathoracic Lymph Nodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 79 13 0.861 0.0358 0.794 0.934
24 60 17 0.674 0.0490 0.585 0.777
36 52 2 0.651 0.0499 0.560 0.757
48 47 2 0.625 0.0512 0.533 0.734
60 37 2 0.597 0.0526 0.502 0.710
120 13 2 0.562 0.0551 0.464 0.681
SITE_TEXT=C77.2 Intra-abdominal LymphNodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 18 0.3009 0.0926 0.1647 0.550
24 6 1 0.2579 0.0888 0.1314 0.506
36 6 0 0.2579 0.0888 0.1314 0.506
48 6 0 0.2579 0.0888 0.1314 0.506
60 4 2 0.1720 0.0772 0.0713 0.415
120 1 2 0.0645 0.0571 0.0114 0.366
SITE_TEXT=C77.3 Lymph Nodes of axilla or arm
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 7 0.720 0.0898 0.564 0.919
24 14 2 0.632 0.0980 0.467 0.857
36 10 2 0.538 0.1036 0.369 0.785
48 9 0 0.538 0.1036 0.369 0.785
60 9 0 0.538 0.1036 0.369 0.785
120 5 0 0.538 0.1036 0.369 0.785
SITE_TEXT=C77.4 Lymph Nodes: Leg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 6 0.684 0.107 0.504 0.929
24 9 3 0.526 0.115 0.344 0.806
36 7 2 0.409 0.115 0.236 0.710
48 6 1 0.351 0.113 0.187 0.658
60 6 0 0.351 0.113 0.187 0.658
120 3 0 0.351 0.113 0.187 0.658
SITE_TEXT=C77.5 Pelvic Lymph Nodes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12.000 2.000 4.000 0.333 0.192 0.108 1.000
SITE_TEXT=C77.8 Lymph Nodes: multiple region
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 142 73 0.668 0.0318 0.609 0.734
24 110 23 0.555 0.0341 0.492 0.626
36 84 13 0.488 0.0347 0.425 0.561
48 66 5 0.457 0.0352 0.393 0.531
60 60 0 0.457 0.0352 0.393 0.531
120 15 3 0.420 0.0384 0.351 0.503
SITE_TEXT=C77.9 Lymph Node NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 144 107 0.589 0.0306 0.532 0.652
24 108 27 0.476 0.0316 0.418 0.542
36 84 18 0.394 0.0315 0.337 0.461
48 69 2 0.385 0.0314 0.328 0.452
60 62 0 0.385 0.0314 0.328 0.452
120 15 10 0.301 0.0347 0.240 0.378
## Univariable Cox Proportional Hazard Model for: SITE_TEXT
Loglik converged before variable 11,19,36 ; beta may be infinite. X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 10 12 13 14 15 18 20 21 25 30 31 48
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
SITE_TEXTC00.1 External Lip: Lower NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA 0.000e+00 NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC00.9 Lip NOS NA NA 0.000e+00 NA NA
SITE_TEXTC01.9 Tongue: Base NOS 9.210e-02 1.096e+00 5.827e-01 0.158 0.87441
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.1 Tongue: Border, Tip -1.461e+01 4.532e-07 1.379e+03 -0.011 0.99155
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA 0.000e+00 NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC02.9 Tongue: NOS 2.988e+00 1.984e+01 1.012e+00 2.953 0.00314 **
SITE_TEXTC03.0 Gum: Upper 8.076e-01 2.243e+00 1.004e+00 0.805 0.42100
SITE_TEXTC03.1 Gum: Lower NA NA 0.000e+00 NA NA
SITE_TEXTC03.9 Gum NOS -1.461e+01 4.533e-07 1.590e+03 -0.009 0.99267
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.9 Floor of Mouth NOS 1.087e+00 2.966e+00 1.004e+00 1.083 0.27880
SITE_TEXTC05.0 Hard Palate -4.427e-01 6.423e-01 4.540e-01 -0.975 0.32951
SITE_TEXTC05.1 Soft Palate NOS -3.798e-01 6.840e-01 5.061e-01 -0.750 0.45302
SITE_TEXTC05.2 Uvula NA NA 0.000e+00 NA NA
SITE_TEXTC05.8 Palate: Overlapping 9.179e-01 2.504e+00 7.119e-01 1.289 0.19727
SITE_TEXTC05.9 Palate NOS -1.926e-01 8.248e-01 7.116e-01 -0.271 0.78667
SITE_TEXTC06.0 Cheek Mucosa 5.462e-01 1.727e+00 7.116e-01 0.768 0.44268
SITE_TEXTC06.1 Mouth: Vestibule 1.570e+00 4.805e+00 7.133e-01 2.201 0.02776 *
SITE_TEXTC06.2 Retromolar Area NA NA 0.000e+00 NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC06.9 Mouth NOS 1.058e+00 2.882e+00 1.004e+00 1.054 0.29179
SITE_TEXTC07.9 Parotid Gland 6.244e-01 1.867e+00 1.003e+00 0.622 0.53376
SITE_TEXTC09.8 Tonsil: Overlapping 4.504e-01 1.569e+00 1.003e+00 0.449 0.65349
SITE_TEXTC09.9 Tonsil NOS -6.806e-01 5.063e-01 5.826e-01 -1.168 0.24276
SITE_TEXTC11.1 Nasopharynx: Poster Wall -1.461e+01 4.533e-07 1.126e+03 -0.013 0.98965
SITE_TEXTC14.2 Waldeyer Ring -3.997e-01 6.705e-01 7.114e-01 -0.562 0.57424
SITE_TEXTC30.0 Nasal Cavity -4.589e-01 6.320e-01 1.007e-01 -4.555 5.23e-06 ***
SITE_TEXTC37.9 Thymus 2.397e-01 1.271e+00 5.826e-01 0.411 0.68075
SITE_TEXTC42.2 Spleen -7.318e-02 9.294e-01 5.826e-01 -0.126 0.90004
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck -4.577e-01 6.328e-01 1.908e-01 -2.399 0.01644 *
SITE_TEXTC77.1 Intrathoracic Lymph Nodes -7.398e-01 4.772e-01 1.801e-01 -4.108 3.99e-05 ***
SITE_TEXTC77.2 Intra-abdominal LymphNodes 6.978e-01 2.009e+00 2.227e-01 3.133 0.00173 **
SITE_TEXTC77.3 Lymph Nodes of axilla or arm -5.671e-01 5.672e-01 3.115e-01 -1.821 0.06868 .
SITE_TEXTC77.4 Lymph Nodes: Leg -1.113e-01 8.947e-01 2.991e-01 -0.372 0.70974
SITE_TEXTC77.5 Pelvic Lymph Nodes 1.213e+00 3.362e+00 4.162e-01 2.913 0.00358 **
SITE_TEXTC77.8 Lymph Nodes: multiple region -2.755e-01 7.592e-01 1.209e-01 -2.279 0.02268 *
SITE_TEXTC77.9 Lymph Node NOS NA NA 0.000e+00 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC00.1 External Lip: Lower NOS NA NA NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA NA NA
SITE_TEXTC00.9 Lip NOS NA NA NA NA
SITE_TEXTC01.9 Tongue: Base NOS 1.096e+00 9.120e-01 0.3500 3.4353
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA NA NA
SITE_TEXTC02.1 Tongue: Border, Tip 4.532e-07 2.206e+06 0.0000 Inf
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA NA NA
SITE_TEXTC02.9 Tongue: NOS 1.984e+01 5.039e-02 2.7319 144.1424
SITE_TEXTC03.0 Gum: Upper 2.243e+00 4.459e-01 0.3137 16.0324
SITE_TEXTC03.1 Gum: Lower NA NA NA NA
SITE_TEXTC03.9 Gum NOS 4.533e-07 2.206e+06 0.0000 Inf
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA NA NA
SITE_TEXTC04.9 Floor of Mouth NOS 2.966e+00 3.371e-01 0.4146 21.2207
SITE_TEXTC05.0 Hard Palate 6.423e-01 1.557e+00 0.2638 1.5638
SITE_TEXTC05.1 Soft Palate NOS 6.840e-01 1.462e+00 0.2537 1.8445
SITE_TEXTC05.2 Uvula NA NA NA NA
SITE_TEXTC05.8 Palate: Overlapping 2.504e+00 3.993e-01 0.6204 10.1073
SITE_TEXTC05.9 Palate NOS 8.248e-01 1.212e+00 0.2045 3.3269
SITE_TEXTC06.0 Cheek Mucosa 1.727e+00 5.791e-01 0.4281 6.9649
SITE_TEXTC06.1 Mouth: Vestibule 4.805e+00 2.081e-01 1.1873 19.4497
SITE_TEXTC06.2 Retromolar Area NA NA NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA NA NA
SITE_TEXTC06.9 Mouth NOS 2.882e+00 3.470e-01 0.4028 20.6132
SITE_TEXTC07.9 Parotid Gland 1.867e+00 5.356e-01 0.2612 13.3445
SITE_TEXTC09.8 Tonsil: Overlapping 1.569e+00 6.374e-01 0.2196 11.2109
SITE_TEXTC09.9 Tonsil NOS 5.063e-01 1.975e+00 0.1616 1.5862
SITE_TEXTC11.1 Nasopharynx: Poster Wall 4.533e-07 2.206e+06 0.0000 Inf
SITE_TEXTC14.2 Waldeyer Ring 6.705e-01 1.491e+00 0.1663 2.7039
SITE_TEXTC30.0 Nasal Cavity 6.320e-01 1.582e+00 0.5188 0.7699
SITE_TEXTC37.9 Thymus 1.271e+00 7.868e-01 0.4057 3.9816
SITE_TEXTC42.2 Spleen 9.294e-01 1.076e+00 0.2967 2.9118
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck 6.328e-01 1.580e+00 0.4354 0.9196
SITE_TEXTC77.1 Intrathoracic Lymph Nodes 4.772e-01 2.095e+00 0.3353 0.6792
SITE_TEXTC77.2 Intra-abdominal LymphNodes 2.009e+00 4.977e-01 1.2986 3.1093
SITE_TEXTC77.3 Lymph Nodes of axilla or arm 5.672e-01 1.763e+00 0.3080 1.0444
SITE_TEXTC77.4 Lymph Nodes: Leg 8.947e-01 1.118e+00 0.4978 1.6078
SITE_TEXTC77.5 Pelvic Lymph Nodes 3.362e+00 2.974e-01 1.4870 7.6013
SITE_TEXTC77.8 Lymph Nodes: multiple region 7.592e-01 1.317e+00 0.5991 0.9622
SITE_TEXTC77.9 Lymph Node NOS NA NA NA NA
Concordance= 0.577 (se = 0.011 )
Rsquare= 0.056 (max possible= 0.999 )
Likelihood ratio test= 79.85 on 28 df, p=7.036e-07
Wald test = 94.03 on 28 df, p=4.595e-09
Score (logrank) test = 120.5 on 28 df, p=1.918e-13
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 21 rows containing missing values (geom_errorbar).Removed 49 rows containing missing values (geom_text).Removed 49 rows containing missing values (geom_text).Removed 49 rows containing missing values (geom_text).Removed 49 rows containing missing values (geom_text).Removed 49 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 29.



Histology
#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)
Grade
#uni_var(test_var = "GRADE_F", data_imp = data)
Clinical T Stage
uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
62 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 1319 652 39.9 30.0 61.9
TNM_CLIN_T=c2 1 1 10.4 NA NA
TNM_CLIN_T=cX 9 6 65.0 18.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
62 observations deleted due to missingness
TNM_CLIN_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 798 417 0.671 0.0132 0.646 0.697
24 610 124 0.563 0.0142 0.536 0.592
36 489 54 0.511 0.0146 0.483 0.541
48 398 23 0.486 0.0148 0.457 0.515
60 339 8 0.475 0.0149 0.447 0.505
120 95 24 0.429 0.0164 0.398 0.462
TNM_CLIN_T=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_CLIN_T=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.889 0.105 0.706 1.000
24 6 2 0.667 0.157 0.420 1.000
36 6 0 0.667 0.157 0.420 1.000
48 5 1 0.556 0.166 0.310 0.997
60 5 0 0.556 0.166 0.310 0.997
120 2 2 0.333 0.157 0.132 0.840
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_T
X matrix deemed to be singular; variable 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 21 22
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
n= 1329, number of events= 659
(62 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Tc0 NA NA 0.00000 NA NA
TNM_CLIN_Tc1 NA NA 0.00000 NA NA
TNM_CLIN_Tc1A NA NA 0.00000 NA NA
TNM_CLIN_Tc1B NA NA 0.00000 NA NA
TNM_CLIN_Tc1C NA NA 0.00000 NA NA
TNM_CLIN_Tc1MI NA NA 0.00000 NA NA
TNM_CLIN_Tc2 1.01570 2.76129 1.00131 1.014 0.310
TNM_CLIN_Tc2A NA NA 0.00000 NA NA
TNM_CLIN_Tc2B NA NA 0.00000 NA NA
TNM_CLIN_Tc2C NA NA 0.00000 NA NA
TNM_CLIN_Tc2D NA NA 0.00000 NA NA
TNM_CLIN_Tc3 NA NA 0.00000 NA NA
TNM_CLIN_Tc3A NA NA 0.00000 NA NA
TNM_CLIN_Tc3B NA NA 0.00000 NA NA
TNM_CLIN_Tc4 NA NA 0.00000 NA NA
TNM_CLIN_Tc4A NA NA 0.00000 NA NA
TNM_CLIN_Tc4B NA NA 0.00000 NA NA
TNM_CLIN_Tc4C NA NA 0.00000 NA NA
TNM_CLIN_Tc4D NA NA 0.00000 NA NA
TNM_CLIN_TcX 0.02273 1.02299 0.41025 0.055 0.956
TNM_CLIN_TpA NA NA 0.00000 NA NA
TNM_CLIN_TpIS NA NA 0.00000 NA NA
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0 NA NA NA NA
TNM_CLIN_Tc1 NA NA NA NA
TNM_CLIN_Tc1A NA NA NA NA
TNM_CLIN_Tc1B NA NA NA NA
TNM_CLIN_Tc1C NA NA NA NA
TNM_CLIN_Tc1MI NA NA NA NA
TNM_CLIN_Tc2 2.761 0.3622 0.3880 19.653
TNM_CLIN_Tc2A NA NA NA NA
TNM_CLIN_Tc2B NA NA NA NA
TNM_CLIN_Tc2C NA NA NA NA
TNM_CLIN_Tc2D NA NA NA NA
TNM_CLIN_Tc3 NA NA NA NA
TNM_CLIN_Tc3A NA NA NA NA
TNM_CLIN_Tc3B NA NA NA NA
TNM_CLIN_Tc4 NA NA NA NA
TNM_CLIN_Tc4A NA NA NA NA
TNM_CLIN_Tc4B NA NA NA NA
TNM_CLIN_Tc4C NA NA NA NA
TNM_CLIN_Tc4D NA NA NA NA
TNM_CLIN_TcX 1.023 0.9775 0.4578 2.286
TNM_CLIN_TpA NA NA NA NA
TNM_CLIN_TpIS NA NA NA NA
Concordance= 0.499 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.999 )
Likelihood ratio test= 0.76 on 2 df, p=0.6847
Wald test = 1.03 on 2 df, p=0.597
Score (logrank) test = 1.12 on 2 df, p=0.5703
Removed 21 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_T



Clinical N Stage
uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
62 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 1319 652 39.9 30.0 61.9
TNM_CLIN_N=c0 1 1 10.4 NA NA
TNM_CLIN_N=cX 9 6 65.0 18.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
62 observations deleted due to missingness
TNM_CLIN_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 798 417 0.671 0.0132 0.646 0.697
24 610 124 0.563 0.0142 0.536 0.592
36 489 54 0.511 0.0146 0.483 0.541
48 398 23 0.486 0.0148 0.457 0.515
60 339 8 0.475 0.0149 0.447 0.505
120 95 24 0.429 0.0164 0.398 0.462
TNM_CLIN_N=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_CLIN_N=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.889 0.105 0.706 1.000
24 6 2 0.667 0.157 0.420 1.000
36 6 0 0.667 0.157 0.420 1.000
48 5 1 0.556 0.166 0.310 0.997
60 5 0 0.556 0.166 0.310 0.997
120 2 2 0.333 0.157 0.132 0.840
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_N
X matrix deemed to be singular; variable 2 3 4 5 6 7 8 9 10 11 12 13
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
n= 1329, number of events= 659
(62 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Nc0 1.01570 2.76129 1.00131 1.014 0.310
TNM_CLIN_Nc1 NA NA 0.00000 NA NA
TNM_CLIN_Nc1A NA NA 0.00000 NA NA
TNM_CLIN_Nc1B NA NA 0.00000 NA NA
TNM_CLIN_Nc2 NA NA 0.00000 NA NA
TNM_CLIN_Nc2A NA NA 0.00000 NA NA
TNM_CLIN_Nc2B NA NA 0.00000 NA NA
TNM_CLIN_Nc2C NA NA 0.00000 NA NA
TNM_CLIN_Nc3 NA NA 0.00000 NA NA
TNM_CLIN_Nc3A NA NA 0.00000 NA NA
TNM_CLIN_Nc3B NA NA 0.00000 NA NA
TNM_CLIN_Nc3C NA NA 0.00000 NA NA
TNM_CLIN_Nc4 NA NA 0.00000 NA NA
TNM_CLIN_NcX 0.02273 1.02299 0.41025 0.055 0.956
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0 2.761 0.3622 0.3880 19.653
TNM_CLIN_Nc1 NA NA NA NA
TNM_CLIN_Nc1A NA NA NA NA
TNM_CLIN_Nc1B NA NA NA NA
TNM_CLIN_Nc2 NA NA NA NA
TNM_CLIN_Nc2A NA NA NA NA
TNM_CLIN_Nc2B NA NA NA NA
TNM_CLIN_Nc2C NA NA NA NA
TNM_CLIN_Nc3 NA NA NA NA
TNM_CLIN_Nc3A NA NA NA NA
TNM_CLIN_Nc3B NA NA NA NA
TNM_CLIN_Nc3C NA NA NA NA
TNM_CLIN_Nc4 NA NA NA NA
TNM_CLIN_NcX 1.023 0.9775 0.4578 2.286
Concordance= 0.499 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.999 )
Likelihood ratio test= 0.76 on 2 df, p=0.6847
Wald test = 1.03 on 2 df, p=0.597
Score (logrank) test = 1.12 on 2 df, p=0.5703
Removed 13 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_N



Clinical Stage Group
uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1 197 67 NA 106.18 NA
TNM_CLIN_STAGE_GROUP=1A 173 53 NA NA NA
TNM_CLIN_STAGE_GROUP=1B 40 14 NA 60.98 NA
TNM_CLIN_STAGE_GROUP=2 108 49 65.45 24.57 NA
TNM_CLIN_STAGE_GROUP=2A 72 26 NA 38.05 NA
TNM_CLIN_STAGE_GROUP=2B 53 30 14.29 7.10 NA
TNM_CLIN_STAGE_GROUP=3 39 20 32.26 10.51 NA
TNM_CLIN_STAGE_GROUP=3A 33 18 28.55 10.74 NA
TNM_CLIN_STAGE_GROUP=3B 24 15 25.03 12.81 NA
TNM_CLIN_STAGE_GROUP=4 202 137 14.78 9.40 19.5
TNM_CLIN_STAGE_GROUP=4A 102 67 14.65 11.17 26.1
TNM_CLIN_STAGE_GROUP=4B 111 78 8.21 6.28 14.0
TNM_CLIN_STAGE_GROUP=N_A 8 3 NA 2.30 NA
TNM_CLIN_STAGE_GROUP=99 229 110 51.29 28.45 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
TNM_CLIN_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 139 42 0.780 0.0300 0.724 0.841
24 112 12 0.708 0.0337 0.645 0.778
36 95 4 0.681 0.0350 0.616 0.754
48 83 4 0.651 0.0365 0.584 0.727
60 68 3 0.626 0.0380 0.555 0.705
120 15 2 0.582 0.0462 0.498 0.680
TNM_CLIN_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 135 22 0.866 0.0266 0.815 0.920
24 106 16 0.759 0.0342 0.695 0.829
36 79 8 0.697 0.0379 0.626 0.775
48 62 4 0.659 0.0402 0.585 0.743
60 47 1 0.648 0.0411 0.573 0.734
120 17 2 0.618 0.0443 0.537 0.711
TNM_CLIN_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 30 7 0.819 0.0620 0.706 0.950
24 24 4 0.709 0.0743 0.577 0.870
36 19 0 0.709 0.0743 0.577 0.870
48 13 1 0.664 0.0818 0.522 0.846
60 11 0 0.664 0.0818 0.522 0.846
120 3 2 0.512 0.1147 0.331 0.795
TNM_CLIN_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 69 28 0.726 0.0443 0.644 0.818
24 51 12 0.593 0.0501 0.503 0.700
36 44 4 0.546 0.0514 0.454 0.657
48 38 0 0.546 0.0514 0.454 0.657
60 35 0 0.546 0.0514 0.454 0.657
120 8 5 0.448 0.0599 0.345 0.582
TNM_CLIN_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 49 14 0.798 0.0483 0.709 0.899
24 31 9 0.643 0.0607 0.535 0.774
36 27 1 0.622 0.0623 0.511 0.757
48 20 2 0.574 0.0661 0.458 0.719
60 17 0 0.574 0.0661 0.458 0.719
120 3 0 0.574 0.0661 0.458 0.719
TNM_CLIN_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 23 0.526 0.0728 0.401 0.690
24 17 3 0.456 0.0734 0.333 0.626
36 12 1 0.428 0.0742 0.305 0.601
48 10 0 0.428 0.0742 0.305 0.601
60 9 1 0.385 0.0781 0.259 0.573
120 2 2 0.241 0.0956 0.110 0.524
TNM_CLIN_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 15 0.609 0.0789 0.473 0.785
24 20 3 0.530 0.0809 0.393 0.715
36 15 2 0.474 0.0815 0.338 0.664
48 13 0 0.474 0.0815 0.338 0.664
60 12 0 0.474 0.0815 0.338 0.664
120 4 0 0.474 0.0815 0.338 0.664
TNM_CLIN_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 13 0.606 0.0851 0.460 0.798
24 14 3 0.502 0.0892 0.355 0.712
36 12 1 0.464 0.0904 0.317 0.679
48 9 0 0.464 0.0904 0.317 0.679
60 8 0 0.464 0.0904 0.317 0.679
120 1 1 0.406 0.0959 0.255 0.645
TNM_CLIN_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 16 8 0.667 0.0962 0.502 0.885
24 10 3 0.529 0.1044 0.359 0.779
36 7 3 0.370 0.1059 0.211 0.649
48 6 1 0.317 0.1031 0.168 0.600
60 5 0 0.317 0.1031 0.168 0.600
120 1 0 0.317 0.1031 0.168 0.600
TNM_CLIN_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 100 90 0.543 0.0356 0.477 0.617
24 68 26 0.399 0.0357 0.335 0.476
36 50 11 0.334 0.0348 0.272 0.410
48 45 3 0.314 0.0347 0.253 0.390
60 41 0 0.314 0.0347 0.253 0.390
120 11 5 0.262 0.0363 0.200 0.344
TNM_CLIN_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 55 44 0.557 0.0499 0.467 0.664
24 37 12 0.432 0.0501 0.344 0.542
36 25 4 0.384 0.0499 0.298 0.496
48 18 3 0.335 0.0510 0.249 0.452
60 12 2 0.297 0.0519 0.211 0.418
120 3 2 0.243 0.0547 0.156 0.378
TNM_CLIN_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 42 61 0.422 0.0485 0.337 0.529
24 33 7 0.350 0.0473 0.268 0.456
36 21 8 0.260 0.0446 0.186 0.364
48 13 1 0.248 0.0442 0.174 0.351
60 9 0 0.248 0.0442 0.174 0.351
120 2 1 0.212 0.0501 0.134 0.337
TNM_CLIN_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 3 0.571 0.187 0.301 1
24 3 0 0.571 0.187 0.301 1
36 3 0 0.571 0.187 0.301 1
48 1 0 0.571 0.187 0.301 1
TNM_CLIN_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 139 70 0.681 0.0316 0.622 0.745
24 117 18 0.591 0.0338 0.528 0.661
36 98 10 0.539 0.0345 0.476 0.611
48 80 6 0.503 0.0353 0.438 0.577
60 74 1 0.496 0.0354 0.432 0.571
120 27 5 0.452 0.0377 0.384 0.533
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 15 16 18 20
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_STAGE_GROUP1 -0.43577 0.64677 0.15500 -2.811 0.004932 **
TNM_CLIN_STAGE_GROUP1A -0.58317 0.55813 0.16725 -3.487 0.000489 ***
TNM_CLIN_STAGE_GROUP1B -0.37584 0.68671 0.28380 -1.324 0.185387
TNM_CLIN_STAGE_GROUP1C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP2 -0.07040 0.93202 0.17178 -0.410 0.681947
TNM_CLIN_STAGE_GROUP2A -0.31030 0.73323 0.21814 -1.422 0.154893
TNM_CLIN_STAGE_GROUP2B 0.42789 1.53401 0.20618 2.075 0.037955 *
TNM_CLIN_STAGE_GROUP2C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP3 0.09095 1.09522 0.24313 0.374 0.708332
TNM_CLIN_STAGE_GROUP3A 0.14808 1.15961 0.25431 0.582 0.560362
TNM_CLIN_STAGE_GROUP3B 0.31623 1.37195 0.27537 1.148 0.250806
TNM_CLIN_STAGE_GROUP3C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4 0.56253 1.75511 0.12821 4.388 1.15e-05 ***
TNM_CLIN_STAGE_GROUP4A 0.49337 1.63782 0.15532 3.176 0.001491 **
TNM_CLIN_STAGE_GROUP4A1 NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4A2 NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4B 0.76250 2.14363 0.14855 5.133 2.85e-07 ***
TNM_CLIN_STAGE_GROUP4C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUPN_A 0.12149 1.12917 0.58533 0.208 0.835580
TNM_CLIN_STAGE_GROUP99 NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1 0.6468 1.5461 0.4773 0.8764
TNM_CLIN_STAGE_GROUP1A 0.5581 1.7917 0.4021 0.7746
TNM_CLIN_STAGE_GROUP1B 0.6867 1.4562 0.3937 1.1977
TNM_CLIN_STAGE_GROUP1C NA NA NA NA
TNM_CLIN_STAGE_GROUP2 0.9320 1.0729 0.6656 1.3051
TNM_CLIN_STAGE_GROUP2A 0.7332 1.3638 0.4781 1.1244
TNM_CLIN_STAGE_GROUP2B 1.5340 0.6519 1.0241 2.2979
TNM_CLIN_STAGE_GROUP2C NA NA NA NA
TNM_CLIN_STAGE_GROUP3 1.0952 0.9131 0.6801 1.7638
TNM_CLIN_STAGE_GROUP3A 1.1596 0.8624 0.7044 1.9089
TNM_CLIN_STAGE_GROUP3B 1.3719 0.7289 0.7997 2.3536
TNM_CLIN_STAGE_GROUP3C NA NA NA NA
TNM_CLIN_STAGE_GROUP4 1.7551 0.5698 1.3651 2.2565
TNM_CLIN_STAGE_GROUP4A 1.6378 0.6106 1.2080 2.2206
TNM_CLIN_STAGE_GROUP4A1 NA NA NA NA
TNM_CLIN_STAGE_GROUP4A2 NA NA NA NA
TNM_CLIN_STAGE_GROUP4B 2.1436 0.4665 1.6022 2.8681
TNM_CLIN_STAGE_GROUP4C NA NA NA NA
TNM_CLIN_STAGE_GROUPN_A 1.1292 0.8856 0.3585 3.5563
TNM_CLIN_STAGE_GROUP99 NA NA NA NA
Concordance= 0.629 (se = 0.011 )
Rsquare= 0.089 (max possible= 0.999 )
Likelihood ratio test= 130.2 on 13 df, p=0
Wald test = 127.6 on 13 df, p=0
Score (logrank) test = 137.2 on 13 df, p=0
Removed 8 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 14.



Pathologic T Stage
uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
90 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 1291 635 41.6 31.0 63.8
TNM_PATH_T=p2 1 1 10.4 NA NA
TNM_PATH_T=pX 9 6 65.0 18.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
90 observations deleted due to missingness
TNM_PATH_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 787 403 0.675 0.0133 0.650 0.702
24 602 122 0.567 0.0144 0.539 0.596
36 482 54 0.514 0.0147 0.486 0.544
48 394 22 0.489 0.0149 0.461 0.519
60 336 8 0.479 0.0151 0.450 0.509
120 95 24 0.431 0.0166 0.400 0.465
TNM_PATH_T=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_PATH_T=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.889 0.105 0.706 1.000
24 6 2 0.667 0.157 0.420 1.000
36 6 0 0.667 0.157 0.420 1.000
48 5 1 0.556 0.166 0.310 0.997
60 5 0 0.556 0.166 0.310 0.997
120 2 2 0.333 0.157 0.132 0.840
## Univariable Cox Proportional Hazard Model for: TNM_PATH_T
X matrix deemed to be singular; variable 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
n= 1301, number of events= 642
(90 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Tp0 NA NA 0.00000 NA NA
TNM_PATH_Tp1 NA NA 0.00000 NA NA
TNM_PATH_Tp1A NA NA 0.00000 NA NA
TNM_PATH_Tp1B NA NA 0.00000 NA NA
TNM_PATH_Tp1C NA NA 0.00000 NA NA
TNM_PATH_Tp1MI NA NA 0.00000 NA NA
TNM_PATH_Tp2 1.03087 2.80350 1.00135 1.029 0.303
TNM_PATH_Tp2A NA NA 0.00000 NA NA
TNM_PATH_Tp2B NA NA 0.00000 NA NA
TNM_PATH_Tp2C NA NA 0.00000 NA NA
TNM_PATH_Tp2D NA NA 0.00000 NA NA
TNM_PATH_Tp3 NA NA 0.00000 NA NA
TNM_PATH_Tp3A NA NA 0.00000 NA NA
TNM_PATH_Tp3B NA NA 0.00000 NA NA
TNM_PATH_Tp4 NA NA 0.00000 NA NA
TNM_PATH_Tp4A NA NA 0.00000 NA NA
TNM_PATH_Tp4B NA NA 0.00000 NA NA
TNM_PATH_Tp4C NA NA 0.00000 NA NA
TNM_PATH_Tp4D NA NA 0.00000 NA NA
TNM_PATH_TpA NA NA 0.00000 NA NA
TNM_PATH_TpIS NA NA 0.00000 NA NA
TNM_PATH_TpX 0.03156 1.03207 0.41030 0.077 0.939
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0 NA NA NA NA
TNM_PATH_Tp1 NA NA NA NA
TNM_PATH_Tp1A NA NA NA NA
TNM_PATH_Tp1B NA NA NA NA
TNM_PATH_Tp1C NA NA NA NA
TNM_PATH_Tp1MI NA NA NA NA
TNM_PATH_Tp2 2.803 0.3567 0.3939 19.955
TNM_PATH_Tp2A NA NA NA NA
TNM_PATH_Tp2B NA NA NA NA
TNM_PATH_Tp2C NA NA NA NA
TNM_PATH_Tp2D NA NA NA NA
TNM_PATH_Tp3 NA NA NA NA
TNM_PATH_Tp3A NA NA NA NA
TNM_PATH_Tp3B NA NA NA NA
TNM_PATH_Tp4 NA NA NA NA
TNM_PATH_Tp4A NA NA NA NA
TNM_PATH_Tp4B NA NA NA NA
TNM_PATH_Tp4C NA NA NA NA
TNM_PATH_Tp4D NA NA NA NA
TNM_PATH_TpA NA NA NA NA
TNM_PATH_TpIS NA NA NA NA
TNM_PATH_TpX 1.032 0.9689 0.4618 2.307
Concordance= 0.499 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.999 )
Likelihood ratio test= 0.78 on 2 df, p=0.6772
Wald test = 1.07 on 2 df, p=0.5871
Score (logrank) test = 1.16 on 2 df, p=0.5592
Removed 21 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_T



Pathologic N Stage
uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
91 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 1290 635 41.6 30.2 63.8
TNM_PATH_N=pX 10 7 53.2 14.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
91 observations deleted due to missingness
TNM_PATH_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 786 403 0.675 0.0133 0.649 0.702
24 601 122 0.566 0.0144 0.539 0.595
36 481 54 0.513 0.0147 0.485 0.543
48 394 22 0.489 0.0149 0.460 0.519
60 336 8 0.478 0.0151 0.449 0.509
120 95 24 0.431 0.0166 0.400 0.465
TNM_PATH_N=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 2 0.8 0.126 0.587 1.000
24 6 2 0.6 0.155 0.362 0.995
36 6 0 0.6 0.155 0.362 0.995
48 5 1 0.5 0.158 0.269 0.929
60 5 0 0.5 0.158 0.269 0.929
120 2 2 0.3 0.145 0.116 0.773
## Univariable Cox Proportional Hazard Model for: TNM_PATH_N
X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
n= 1300, number of events= 642
(91 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Np0 NA NA 0.0000 NA NA
TNM_PATH_Np0I- NA NA 0.0000 NA NA
TNM_PATH_Np0I+ NA NA 0.0000 NA NA
TNM_PATH_Np0M- NA NA 0.0000 NA NA
TNM_PATH_Np0M+ NA NA 0.0000 NA NA
TNM_PATH_Np1 NA NA 0.0000 NA NA
TNM_PATH_Np1A NA NA 0.0000 NA NA
TNM_PATH_Np1B NA NA 0.0000 NA NA
TNM_PATH_Np1C NA NA 0.0000 NA NA
TNM_PATH_Np1MI NA NA 0.0000 NA NA
TNM_PATH_Np2 NA NA 0.0000 NA NA
TNM_PATH_Np2A NA NA 0.0000 NA NA
TNM_PATH_Np2B NA NA 0.0000 NA NA
TNM_PATH_Np2C NA NA 0.0000 NA NA
TNM_PATH_Np3 NA NA 0.0000 NA NA
TNM_PATH_Np3A NA NA 0.0000 NA NA
TNM_PATH_Np3B NA NA 0.0000 NA NA
TNM_PATH_Np3C NA NA 0.0000 NA NA
TNM_PATH_Np4 NA NA 0.0000 NA NA
TNM_PATH_NpX 0.1252 1.1334 0.3801 0.329 0.742
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0 NA NA NA NA
TNM_PATH_Np0I- NA NA NA NA
TNM_PATH_Np0I+ NA NA NA NA
TNM_PATH_Np0M- NA NA NA NA
TNM_PATH_Np0M+ NA NA NA NA
TNM_PATH_Np1 NA NA NA NA
TNM_PATH_Np1A NA NA NA NA
TNM_PATH_Np1B NA NA NA NA
TNM_PATH_Np1C NA NA NA NA
TNM_PATH_Np1MI NA NA NA NA
TNM_PATH_Np2 NA NA NA NA
TNM_PATH_Np2A NA NA NA NA
TNM_PATH_Np2B NA NA NA NA
TNM_PATH_Np2C NA NA NA NA
TNM_PATH_Np3 NA NA NA NA
TNM_PATH_Np3A NA NA NA NA
TNM_PATH_Np3B NA NA NA NA
TNM_PATH_Np3C NA NA NA NA
TNM_PATH_Np4 NA NA NA NA
TNM_PATH_NpX 1.133 0.8823 0.538 2.388
Concordance= 0.499 (se = 0.002 )
Rsquare= 0 (max possible= 0.999 )
Likelihood ratio test= 0.1 on 1 df, p=0.7468
Wald test = 0.11 on 1 df, p=0.7418
Score (logrank) test = 0.11 on 1 df, p=0.7416
Removed 20 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_N



Pathologic M Stage
uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
134 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 1247 615 39.9 30.0 64.3
TNM_PATH_M=pX 10 7 53.2 14.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
134 observations deleted due to missingness
TNM_PATH_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 757 393 0.672 0.0136 0.646 0.699
24 583 116 0.565 0.0146 0.537 0.595
36 471 53 0.512 0.0150 0.484 0.542
48 389 20 0.489 0.0152 0.460 0.520
60 334 7 0.480 0.0153 0.451 0.511
120 95 24 0.433 0.0168 0.401 0.467
TNM_PATH_M=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 2 0.8 0.126 0.587 1.000
24 6 2 0.6 0.155 0.362 0.995
36 6 0 0.6 0.155 0.362 0.995
48 5 1 0.5 0.158 0.269 0.929
60 5 0 0.5 0.158 0.269 0.929
120 2 2 0.3 0.145 0.116 0.773
## Univariable Cox Proportional Hazard Model for: TNM_PATH_M
X matrix deemed to be singular; variable 1 2 3 4 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
n= 1257, number of events= 622
(134 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Mp0 NA NA 0.0000 NA NA
TNM_PATH_Mp1 NA NA 0.0000 NA NA
TNM_PATH_Mp1A NA NA 0.0000 NA NA
TNM_PATH_Mp1B NA NA 0.0000 NA NA
TNM_PATH_Mp1C NA NA 0.0000 NA NA
TNM_PATH_MpX 0.1277 1.1362 0.3802 0.336 0.737
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp0 NA NA NA NA
TNM_PATH_Mp1 NA NA NA NA
TNM_PATH_Mp1A NA NA NA NA
TNM_PATH_Mp1B NA NA NA NA
TNM_PATH_Mp1C NA NA NA NA
TNM_PATH_MpX 1.136 0.8802 0.5393 2.394
Concordance= 0.499 (se = 0.002 )
Rsquare= 0 (max possible= 0.999 )
Likelihood ratio test= 0.11 on 1 df, p=0.7422
Wald test = 0.11 on 1 df, p=0.7371
Score (logrank) test = 0.11 on 1 df, p=0.7369
Removed 6 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_M



Pathologic Stage Group
uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
112 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1 86 36 NA 34.10 NA
TNM_PATH_STAGE_GROUP=1A 48 15 NA 102.28 NA
TNM_PATH_STAGE_GROUP=1B 15 6 NA 18.10 NA
TNM_PATH_STAGE_GROUP=2 41 20 73.8 23.56 NA
TNM_PATH_STAGE_GROUP=2A 20 8 NA 13.17 NA
TNM_PATH_STAGE_GROUP=2B 14 9 86.1 5.26 NA
TNM_PATH_STAGE_GROUP=3 16 7 NA 7.52 NA
TNM_PATH_STAGE_GROUP=3A 6 2 NA 10.05 NA
TNM_PATH_STAGE_GROUP=3B 5 2 NA 25.03 NA
TNM_PATH_STAGE_GROUP=4 88 60 15.4 8.11 24.2
TNM_PATH_STAGE_GROUP=4A 33 22 26.1 11.89 65.0
TNM_PATH_STAGE_GROUP=4B 41 28 4.7 4.11 27.7
TNM_PATH_STAGE_GROUP=N_A 8 3 NA 2.30 NA
TNM_PATH_STAGE_GROUP=99 858 421 38.1 28.25 64.3
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
112 observations deleted due to missingness
TNM_PATH_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 56 25 0.704 0.0497 0.613 0.809
24 47 5 0.639 0.0531 0.543 0.752
36 37 3 0.595 0.0551 0.497 0.714
48 34 1 0.579 0.0559 0.479 0.700
60 27 1 0.559 0.0576 0.456 0.684
120 5 1 0.516 0.0673 0.399 0.666
TNM_PATH_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40 5 0.893 0.0453 0.809 0.986
24 35 3 0.822 0.0571 0.718 0.942
36 31 2 0.773 0.0634 0.659 0.908
48 24 2 0.721 0.0691 0.597 0.870
60 20 1 0.691 0.0725 0.562 0.849
120 8 2 0.602 0.0866 0.454 0.798
TNM_PATH_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 2 0.867 0.0878 0.711 1.000
24 10 3 0.667 0.1217 0.466 0.953
36 9 0 0.667 0.1217 0.466 0.953
48 7 1 0.593 0.1288 0.387 0.907
60 6 0 0.593 0.1288 0.387 0.907
120 2 0 0.593 0.1288 0.387 0.907
TNM_PATH_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 11 0.725 0.0709 0.598 0.878
24 24 4 0.621 0.0774 0.486 0.793
36 22 2 0.569 0.0791 0.434 0.747
48 18 1 0.542 0.0798 0.406 0.724
60 16 0 0.542 0.0798 0.406 0.724
120 5 2 0.466 0.0852 0.326 0.667
TNM_PATH_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 14 4 0.791 0.0935 0.627 0.997
24 7 3 0.608 0.1171 0.417 0.887
36 6 1 0.521 0.1286 0.321 0.845
48 5 0 0.521 0.1286 0.321 0.845
60 5 0 0.521 0.1286 0.321 0.845
TNM_PATH_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 6 0.571 0.132 0.3630 0.899
24 8 0 0.571 0.132 0.3630 0.899
36 8 0 0.571 0.132 0.3630 0.899
48 7 0 0.571 0.132 0.3630 0.899
60 7 0 0.571 0.132 0.3630 0.899
120 1 3 0.152 0.134 0.0273 0.851
TNM_PATH_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 10 5 0.677 0.119 0.479 0.957
24 9 1 0.609 0.125 0.407 0.911
36 7 0 0.609 0.125 0.407 0.911
48 6 1 0.522 0.134 0.316 0.864
60 5 0 0.522 0.134 0.316 0.864
TNM_PATH_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 2 0.556 0.248 0.231 1
24 2 0 0.556 0.248 0.231 1
36 2 0 0.556 0.248 0.231 1
48 1 0 0.556 0.248 0.231 1
60 1 0 0.556 0.248 0.231 1
TNM_PATH_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 1 0.800 0.179 0.516 1
24 3 0 0.800 0.179 0.516 1
36 2 1 0.533 0.248 0.214 1
48 2 0 0.533 0.248 0.214 1
60 2 0 0.533 0.248 0.214 1
120 1 0 0.533 0.248 0.214 1
TNM_PATH_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 40 40 0.525 0.0548 0.428 0.644
24 27 10 0.388 0.0551 0.294 0.512
36 22 4 0.331 0.0539 0.240 0.455
48 20 1 0.316 0.0535 0.226 0.440
60 19 0 0.316 0.0535 0.226 0.440
120 5 4 0.225 0.0555 0.139 0.365
TNM_PATH_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 20 13 0.594 0.0868 0.446 0.791
24 19 0 0.594 0.0868 0.446 0.791
36 13 4 0.469 0.0882 0.325 0.678
48 10 1 0.430 0.0891 0.287 0.646
60 7 2 0.344 0.0897 0.206 0.573
120 3 2 0.246 0.0869 0.123 0.492
TNM_PATH_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 25 0.365 0.0778 0.240 0.554
24 11 1 0.334 0.0770 0.213 0.525
36 6 2 0.274 0.0741 0.161 0.465
48 3 0 0.274 0.0741 0.161 0.465
60 2 0 0.274 0.0741 0.161 0.465
120 1 0 0.274 0.0741 0.161 0.465
TNM_PATH_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 3 0.571 0.187 0.301 1
24 3 0 0.571 0.187 0.301 1
36 3 0 0.571 0.187 0.301 1
48 1 0 0.571 0.187 0.301 1
TNM_PATH_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 529 262 0.682 0.0163 0.650 0.714
24 396 89 0.563 0.0177 0.530 0.599
36 312 37 0.508 0.0181 0.474 0.545
48 258 15 0.482 0.0184 0.448 0.520
60 223 4 0.474 0.0185 0.439 0.512
120 66 13 0.439 0.0197 0.402 0.480
## Univariable Cox Proportional Hazard Model for: TNM_PATH_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 15 17 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
n= 1279, number of events= 639
(112 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_STAGE_GROUP1 -0.2295 0.7949 0.1737 -1.322 0.186334
TNM_PATH_STAGE_GROUP1A -0.7493 0.4727 0.2629 -2.851 0.004364 **
TNM_PATH_STAGE_GROUP1B -0.4457 0.6404 0.4112 -1.084 0.278426
TNM_PATH_STAGE_GROUP1C NA NA 0.0000 NA NA
TNM_PATH_STAGE_GROUP2 -0.1498 0.8609 0.2289 -0.654 0.512957
TNM_PATH_STAGE_GROUP2A -0.2629 0.7689 0.3569 -0.736 0.461482
TNM_PATH_STAGE_GROUP2B 0.1981 1.2191 0.3370 0.588 0.556607
TNM_PATH_STAGE_GROUP2C NA NA 0.0000 NA NA
TNM_PATH_STAGE_GROUP3 -0.1585 0.8534 0.3811 -0.416 0.677525
TNM_PATH_STAGE_GROUP3A -0.1728 0.8413 0.7089 -0.244 0.807380
TNM_PATH_STAGE_GROUP3B -0.4473 0.6393 0.7088 -0.631 0.528003
TNM_PATH_STAGE_GROUP3C NA NA 0.0000 NA NA
TNM_PATH_STAGE_GROUP4 0.5209 1.6835 0.1381 3.771 0.000163 ***
TNM_PATH_STAGE_GROUP4A 0.2502 1.2842 0.2187 1.144 0.252719
TNM_PATH_STAGE_GROUP4A1 NA NA 0.0000 NA NA
TNM_PATH_STAGE_GROUP4B 0.7998 2.2252 0.1956 4.089 4.34e-05 ***
TNM_PATH_STAGE_GROUP4C NA NA 0.0000 NA NA
TNM_PATH_STAGE_GROUPN_A 0.0608 1.0627 0.5795 0.105 0.916445
TNM_PATH_STAGE_GROUP99 NA NA 0.0000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1 0.7949 1.2580 0.5656 1.1173
TNM_PATH_STAGE_GROUP1A 0.4727 2.1155 0.2824 0.7913
TNM_PATH_STAGE_GROUP1B 0.6404 1.5615 0.2860 1.4337
TNM_PATH_STAGE_GROUP1C NA NA NA NA
TNM_PATH_STAGE_GROUP2 0.8609 1.1616 0.5497 1.3484
TNM_PATH_STAGE_GROUP2A 0.7688 1.3006 0.3819 1.5477
TNM_PATH_STAGE_GROUP2B 1.2191 0.8203 0.6298 2.3599
TNM_PATH_STAGE_GROUP2C NA NA NA NA
TNM_PATH_STAGE_GROUP3 0.8534 1.1717 0.4043 1.8013
TNM_PATH_STAGE_GROUP3A 0.8413 1.1887 0.2097 3.3754
TNM_PATH_STAGE_GROUP3B 0.6393 1.5641 0.1594 2.5650
TNM_PATH_STAGE_GROUP3C NA NA NA NA
TNM_PATH_STAGE_GROUP4 1.6835 0.5940 1.2842 2.2069
TNM_PATH_STAGE_GROUP4A 1.2842 0.7787 0.8365 1.9716
TNM_PATH_STAGE_GROUP4A1 NA NA NA NA
TNM_PATH_STAGE_GROUP4B 2.2252 0.4494 1.5165 3.2649
TNM_PATH_STAGE_GROUP4C NA NA NA NA
TNM_PATH_STAGE_GROUPN_A 1.0627 0.9410 0.3413 3.3090
TNM_PATH_STAGE_GROUP99 NA NA NA NA
Concordance= 0.56 (se = 0.01 )
Rsquare= 0.035 (max possible= 0.999 )
Likelihood ratio test= 45.21 on 13 df, p=1.928e-05
Wald test = 47.22 on 13 df, p=8.862e-06
Score (logrank) test = 49.7 on 13 df, p=3.353e-06
Removed 7 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 14.



Margins
uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n events median 0.95LCL 0.95UCL
MARGINS=No Residual 24 8 NA 44.7 NA
MARGINS=Residual, NOS 10 2 NA NA NA
MARGINS=Macroscopic Resid 8 1 NA NA NA
MARGINS=Not evaluable 34 10 NA NA NA
MARGINS=No surg 940 497 27.9 22.5 42.5
MARGINS=Unknown 375 169 60.9 35.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
MARGINS=No Residual
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 7 0.708 0.0928 0.548 0.916
24 16 0 0.708 0.0928 0.548 0.916
36 13 0 0.708 0.0928 0.548 0.916
48 8 1 0.644 0.1043 0.469 0.885
60 6 0 0.644 0.1043 0.469 0.885
120 1 0 0.644 0.1043 0.469 0.885
MARGINS=Residual, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7 2 0.787 0.134 0.564 1
24 5 0 0.787 0.134 0.564 1
36 5 0 0.787 0.134 0.564 1
48 3 0 0.787 0.134 0.564 1
60 3 0 0.787 0.134 0.564 1
MARGINS=Macroscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 1 0.857 0.132 0.633 1
24 6 0 0.857 0.132 0.633 1
36 4 0 0.857 0.132 0.633 1
48 3 0 0.857 0.132 0.633 1
60 3 0 0.857 0.132 0.633 1
120 1 0 0.857 0.132 0.633 1
MARGINS=Not evaluable
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 24 7 0.790 0.0707 0.663 0.941
24 22 0 0.790 0.0707 0.663 0.941
36 18 1 0.752 0.0767 0.616 0.919
48 13 2 0.669 0.0881 0.517 0.866
60 11 0 0.669 0.0881 0.517 0.866
120 4 0 0.669 0.0881 0.517 0.866
MARGINS=No surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 540 328 0.638 0.0160 0.607 0.670
24 399 92 0.525 0.0170 0.493 0.559
36 322 33 0.479 0.0173 0.447 0.514
48 268 14 0.457 0.0175 0.424 0.493
60 233 5 0.448 0.0176 0.415 0.484
120 74 24 0.388 0.0192 0.352 0.428
MARGINS=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 249 95 0.736 0.0233 0.691 0.783
24 195 36 0.626 0.0260 0.577 0.679
36 145 23 0.549 0.0274 0.498 0.606
48 116 8 0.517 0.0280 0.465 0.575
60 92 3 0.503 0.0284 0.451 0.562
120 17 3 0.480 0.0306 0.423 0.544
## Univariable Cox Proportional Hazard Model for: MARGINS
X matrix deemed to be singular; variable 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
MARGINSResidual, NOS -0.5108 0.6000 0.7906 -0.646 0.5182
MARGINSMicroscopic Resid NA NA 0.0000 NA NA
MARGINSMacroscopic Resid -1.0705 0.3428 1.0607 -1.009 0.3128
MARGINSNot evaluable -0.1005 0.9044 0.4744 -0.212 0.8322
MARGINSNo surg 0.6514 1.9182 0.3564 1.827 0.0676 .
MARGINSUnknown 0.4135 1.5122 0.3618 1.143 0.2531
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS 0.6000 1.6666 0.12741 2.826
MARGINSMicroscopic Resid NA NA NA NA
MARGINSMacroscopic Resid 0.3428 2.9169 0.04288 2.741
MARGINSNot evaluable 0.9044 1.1058 0.35692 2.291
MARGINSNo surg 1.9182 0.5213 0.95388 3.857
MARGINSUnknown 1.5122 0.6613 0.74403 3.073
Concordance= 0.54 (se = 0.01 )
Rsquare= 0.018 (max possible= 0.999 )
Likelihood ratio test= 24.63 on 5 df, p=0.0001639
Wald test = 19.53 on 5 df, p=0.001533
Score (logrank) test = 20.82 on 5 df, p=0.0008774
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: MARGINS



Margins Yes/No
#uni_var(test_var = "MARGINS_YN", data_imp = data)
30 Day Readmission
uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 1331 656 40.41 30.16 63.2
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 13 11 5.65 3.65 NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same 10 5 44.71 18.50 NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same 1 0 NA NA NA
READM_HOSP_30_DAYS_F=9 36 15 NA 16.89 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 808 420 0.672 0.0132 0.647 0.699
24 613 123 0.566 0.0141 0.539 0.594
36 483 54 0.514 0.0145 0.486 0.543
48 390 23 0.488 0.0148 0.460 0.518
60 330 7 0.479 0.0149 0.450 0.509
120 92 27 0.425 0.0167 0.394 0.459
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 9 0.308 0.128 0.1361 0.695
24 3 1 0.231 0.117 0.0855 0.623
36 2 1 0.154 0.100 0.0430 0.550
48 2 0 0.154 0.100 0.0430 0.550
60 2 0 0.154 0.100 0.0430 0.550
120 1 0 0.154 0.100 0.0430 0.550
READM_HOSP_30_DAYS_F=Plan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.900 0.0949 0.732 1.000
24 6 2 0.675 0.1551 0.430 1.000
36 6 0 0.675 0.1551 0.430 1.000
48 3 2 0.422 0.1737 0.188 0.945
60 3 0 0.422 0.1737 0.188 0.945
120 1 0 0.422 0.1737 0.188 0.945
READM_HOSP_30_DAYS_F=PlanUnplan_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
READM_HOSP_30_DAYS_F=9
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 10 0.691 0.0814 0.549 0.871
24 20 2 0.628 0.0852 0.482 0.820
36 16 2 0.564 0.0879 0.415 0.765
48 16 0 0.564 0.0879 0.415 0.765
60 13 1 0.528 0.0892 0.380 0.736
120 3 0 0.528 0.0892 0.380 0.736
## Univariable Cox Proportional Hazard Model for: READM_HOSP_30_DAYS_F
Loglik converged before variable 3 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 9.532e-01 2.594e+00 3.043e-01 3.133 0.00173 **
READM_HOSP_30_DAYS_FPlan_Readmit_Same -1.850e-01 8.311e-01 4.489e-01 -0.412 0.68028
READM_HOSP_30_DAYS_FPlanUnplan_Same -1.302e+01 2.225e-06 8.265e+02 -0.016 0.98744
READM_HOSP_30_DAYS_F9 -2.142e-01 8.072e-01 2.612e-01 -0.820 0.41214
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 2.594e+00 3.855e-01 1.4288 4.710
READM_HOSP_30_DAYS_FPlan_Readmit_Same 8.311e-01 1.203e+00 0.3448 2.004
READM_HOSP_30_DAYS_FPlanUnplan_Same 2.225e-06 4.495e+05 0.0000 Inf
READM_HOSP_30_DAYS_F9 8.072e-01 1.239e+00 0.4837 1.347
Concordance= 0.509 (se = 0.004 )
Rsquare= 0.007 (max possible= 0.999 )
Likelihood ratio test= 9.68 on 4 df, p=0.04624
Wald test = 10.78 on 4 df, p=0.0292
Score (logrank) test = 12.24 on 4 df, p=0.01563
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: READM_HOSP_30_DAYS_F



Radiation Type
uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None 816 467 24.18 19.32 28.4
RX_SUMM_RADIATION_F=Beam Radiation 563 216 NA NA NA
RX_SUMM_RADIATION_F=Radiation, NOS 3 1 9.89 9.89 NA
RX_SUMM_RADIATION_F=Unknown 9 3 NA 34.76 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
RX_SUMM_RADIATION_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 457 300 0.616 0.0175 0.583 0.651
24 342 81 0.503 0.0182 0.469 0.540
36 271 42 0.440 0.0184 0.406 0.478
48 227 16 0.413 0.0185 0.378 0.451
60 192 6 0.401 0.0185 0.366 0.439
120 54 20 0.344 0.0202 0.306 0.386
RX_SUMM_RADIATION_F=Beam Radiation
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 379 137 0.749 0.0186 0.713 0.786
24 294 47 0.652 0.0209 0.612 0.694
36 230 14 0.618 0.0217 0.577 0.662
48 179 9 0.592 0.0224 0.550 0.638
60 152 2 0.586 0.0227 0.543 0.632
120 41 7 0.550 0.0251 0.503 0.601
RX_SUMM_RADIATION_F=Radiation, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 1 0.5 0.354 0.125 1
24 1 0 0.5 0.354 0.125 1
36 1 0 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
60 1 0 0.5 0.354 0.125 1
RX_SUMM_RADIATION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6 2 0.762 0.148 0.521 1
24 6 0 0.762 0.148 0.521 1
36 5 1 0.635 0.169 0.377 1
48 4 0 0.635 0.169 0.377 1
60 3 0 0.635 0.169 0.377 1
120 2 0 0.635 0.169 0.377 1
## Univariable Cox Proportional Hazard Model for: RX_SUMM_RADIATION_F
X matrix deemed to be singular; variable 2 3 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
RX_SUMM_RADIATION_FBeam Radiation -0.5644 0.5687 0.0823 -6.857 7.03e-12 ***
RX_SUMM_RADIATION_FRadioactive Implants NA NA 0.0000 NA NA
RX_SUMM_RADIATION_FRadioisotopes NA NA 0.0000 NA NA
RX_SUMM_RADIATION_FBeam + Imp or Isotopes NA NA 0.0000 NA NA
RX_SUMM_RADIATION_FRadiation, NOS -0.6252 0.5352 1.0011 -0.625 0.532
RX_SUMM_RADIATION_FUnknown -0.7845 0.4563 0.5793 -1.354 0.176
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation 0.5687 1.758 0.48400 0.6683
RX_SUMM_RADIATION_FRadioactive Implants NA NA NA NA
RX_SUMM_RADIATION_FRadioisotopes NA NA NA NA
RX_SUMM_RADIATION_FBeam + Imp or Isotopes NA NA NA NA
RX_SUMM_RADIATION_FRadiation, NOS 0.5351 1.869 0.07521 3.8076
RX_SUMM_RADIATION_FUnknown 0.4563 2.191 0.14663 1.4203
Concordance= 0.57 (se = 0.01 )
Rsquare= 0.036 (max possible= 0.999 )
Likelihood ratio test= 51.19 on 3 df, p=4.466e-11
Wald test = 48.31 on 3 df, p=1.827e-10
Score (logrank) test = 49.64 on 3 df, p=9.536e-11
Removed 4 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_SUMM_RADIATION_F



Lymphovascular Invasion
#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
Endoscopic/Robotic
uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
702 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg 419 182 60.9 33.28 NA
RX_HOSP_SURG_APPR_2010_F=Robot_Assist 1 0 NA NA NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap 37 14 NA 17.15 NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 31 19 16.6 5.62 NA
RX_HOSP_SURG_APPR_2010_F=Unknown 201 84 55.6 26.81 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
702 observations deleted due to missingness
RX_HOSP_SURG_APPR_2010_F=No_Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 232 141 0.645 0.0241 0.599 0.694
24 172 23 0.577 0.0254 0.529 0.629
36 120 8 0.547 0.0263 0.497 0.601
48 75 6 0.515 0.0277 0.464 0.573
60 44 1 0.507 0.0286 0.454 0.566
RX_HOSP_SURG_APPR_2010_F=Robot_Assist
time n.risk n.event survival std.err lower 95% CI upper 95% CI
RX_HOSP_SURG_APPR_2010_F=Endo_Lap
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 22 10 0.718 0.0762 0.583 0.884
24 14 3 0.598 0.0895 0.446 0.802
36 10 0 0.598 0.0895 0.446 0.802
48 5 1 0.532 0.1013 0.366 0.773
60 4 0 0.532 0.1013 0.366 0.773
RX_HOSP_SURG_APPR_2010_F=Open_Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 15 15 0.506 0.0911 0.355 0.720
24 10 2 0.431 0.0919 0.283 0.654
36 6 1 0.369 0.0972 0.220 0.618
48 3 1 0.308 0.0985 0.164 0.576
60 3 0 0.308 0.0985 0.164 0.576
RX_HOSP_SURG_APPR_2010_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 134 43 0.771 0.0307 0.713 0.834
24 103 20 0.652 0.0357 0.586 0.726
36 69 16 0.549 0.0383 0.479 0.630
48 52 3 0.523 0.0393 0.452 0.606
60 33 2 0.500 0.0410 0.425 0.587
## Univariable Cox Proportional Hazard Model for: RX_HOSP_SURG_APPR_2010_F
Loglik converged before variable 1 ; beta may be infinite. X matrix deemed to be singular; variable 2 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
n= 689, number of events= 299
(702 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RX_HOSP_SURG_APPR_2010_FRobot_Assist -1.305e+01 2.156e-06 1.281e+03 -0.010 0.9919
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA 0.000e+00 NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap -1.539e-01 8.573e-01 2.774e-01 -0.555 0.5790
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open NA NA 0.000e+00 NA NA
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 4.803e-01 1.617e+00 2.411e-01 1.992 0.0464 *
RX_HOSP_SURG_APPR_2010_FUnknown -1.626e-01 8.500e-01 1.320e-01 -1.231 0.2182
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist 2.156e-06 4.638e+05 0.0000 Inf
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap 8.573e-01 1.166e+00 0.4978 1.477
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open NA NA NA NA
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 1.617e+00 6.186e-01 1.0077 2.593
RX_HOSP_SURG_APPR_2010_FUnknown 8.500e-01 1.177e+00 0.6562 1.101
Concordance= 0.544 (se = 0.015 )
Rsquare= 0.01 (max possible= 0.995 )
Likelihood ratio test= 6.67 on 4 df, p=0.1542
Wald test = 6.78 on 4 df, p=0.1481
Score (logrank) test = 7.2 on 4 df, p=0.1256
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 3 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_HOSP_SURG_APPR_2010_F



Surgery Radiation Sequence
uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone 126 73 33.8 14.7 97.3
SURG_RAD_SEQ=Surg then Rad 111 29 NA NA NA
SURG_RAD_SEQ=Rad Alone 425 179 NA 53.9 NA
SURG_RAD_SEQ=No Treatment 659 374 24.2 19.3 27.7
SURG_RAD_SEQ=Other 68 32 76.5 11.7 NA
SURG_RAD_SEQ=Rad then Surg 2 0 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
SURG_RAD_SEQ=Surg Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 73 50 0.595 0.0442 0.515 0.689
24 61 8 0.528 0.0451 0.447 0.625
36 52 4 0.493 0.0454 0.412 0.591
48 42 7 0.425 0.0459 0.344 0.525
60 38 0 0.425 0.0459 0.344 0.525
120 10 3 0.386 0.0472 0.304 0.490
SURG_RAD_SEQ=Surg then Rad
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 86 16 0.850 0.0346 0.785 0.921
24 70 8 0.767 0.0419 0.690 0.854
36 56 3 0.732 0.0446 0.650 0.825
48 43 1 0.718 0.0459 0.634 0.814
60 38 1 0.701 0.0479 0.613 0.802
120 10 0 0.701 0.0479 0.613 0.802
SURG_RAD_SEQ=Rad Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 274 113 0.725 0.0221 0.683 0.769
24 206 39 0.617 0.0247 0.570 0.667
36 163 11 0.582 0.0255 0.534 0.634
48 130 8 0.551 0.0263 0.502 0.605
60 109 1 0.547 0.0265 0.497 0.601
120 31 7 0.502 0.0294 0.447 0.563
SURG_RAD_SEQ=No Treatment
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 373 234 0.628 0.0193 0.591 0.667
24 272 71 0.504 0.0204 0.466 0.546
36 211 37 0.434 0.0205 0.396 0.477
48 177 9 0.415 0.0206 0.376 0.457
60 147 6 0.400 0.0208 0.361 0.442
120 41 16 0.336 0.0234 0.293 0.385
SURG_RAD_SEQ=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 35 27 0.580 0.0617 0.471 0.715
24 32 2 0.547 0.0625 0.437 0.685
36 24 2 0.508 0.0639 0.397 0.650
48 19 0 0.508 0.0639 0.397 0.650
60 16 0 0.508 0.0639 0.397 0.650
120 5 1 0.469 0.0699 0.350 0.628
SURG_RAD_SEQ=Rad then Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 1 0 1 0 1 1
## Univariable Cox Proportional Hazard Model for: SURG_RAD_SEQ
Loglik converged before variable 6 ; beta may be infinite. X matrix deemed to be singular; variable 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -1.020e+00 3.607e-01 2.195e-01 -4.645 3.4e-06 ***
SURG_RAD_SEQRad Alone -4.003e-01 6.701e-01 1.389e-01 -2.881 0.00396 **
SURG_RAD_SEQNo Treatment 2.733e-02 1.028e+00 1.281e-01 0.213 0.83104
SURG_RAD_SEQOther -1.408e-01 8.686e-01 2.120e-01 -0.664 0.50655
SURG_RAD_SEQRad before and after Surg NA NA 0.000e+00 NA NA
SURG_RAD_SEQRad then Surg -1.422e+01 6.692e-07 9.616e+02 -0.015 0.98820
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 3.607e-01 2.772e+00 0.2346 0.5546
SURG_RAD_SEQRad Alone 6.701e-01 1.492e+00 0.5104 0.8799
SURG_RAD_SEQNo Treatment 1.028e+00 9.730e-01 0.7996 1.3209
SURG_RAD_SEQOther 8.686e-01 1.151e+00 0.5732 1.3162
SURG_RAD_SEQRad before and after Surg NA NA NA NA
SURG_RAD_SEQRad then Surg 6.692e-07 1.494e+06 0.0000 Inf
Concordance= 0.57 (se = 0.011 )
Rsquare= 0.04 (max possible= 0.999 )
Likelihood ratio test= 56.93 on 5 df, p=5.236e-11
Wald test = 46.45 on 5 df, p=7.347e-09
Score (logrank) test = 50.3 on 5 df, p=1.201e-09
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 2 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURG_RAD_SEQ



Surgery Yes/No
uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n events median 0.95LCL 0.95UCL
SURGERY_YN=No 1116 566 33.3 25.9 51.3
SURGERY_YN=Ukn 33 18 20.2 8.9 NA
SURGERY_YN=Yes 242 103 128.0 45.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
SURGERY_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 663 361 0.663 0.0145 0.635 0.692
24 494 109 0.550 0.0156 0.520 0.581
36 384 48 0.494 0.0159 0.464 0.526
48 313 17 0.471 0.0162 0.440 0.504
60 260 7 0.460 0.0163 0.429 0.493
120 72 23 0.402 0.0185 0.368 0.440
SURGERY_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 12 0.599 0.0898 0.446 0.803
24 14 3 0.493 0.0924 0.342 0.712
36 12 2 0.423 0.0916 0.276 0.646
48 12 0 0.423 0.0916 0.276 0.646
60 11 0 0.423 0.0916 0.276 0.646
120 4 1 0.380 0.0917 0.237 0.610
SURGERY_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 163 67 0.717 0.0293 0.662 0.777
24 135 16 0.644 0.0315 0.585 0.709
36 111 7 0.609 0.0325 0.548 0.676
48 86 8 0.562 0.0339 0.500 0.633
60 77 1 0.556 0.0341 0.493 0.627
120 21 3 0.529 0.0360 0.463 0.605
## Univariable Cox Proportional Hazard Model for: SURGERY_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
SURGERY_YNUkn 0.1147 1.1215 0.2395 0.479 0.63203
SURGERY_YNYes -0.2880 0.7498 0.1072 -2.686 0.00723 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn 1.1215 0.8916 0.7013 1.7935
SURGERY_YNYes 0.7498 1.3338 0.6076 0.9251
Concordance= 0.519 (se = 0.008 )
Rsquare= 0.006 (max possible= 0.999 )
Likelihood ratio test= 8.16 on 2 df, p=0.01694
Wald test = 7.66 on 2 df, p=0.0217
Score (logrank) test = 7.72 on 2 df, p=0.02112
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURGERY_YN



Radiation Yes/No
uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
19 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RADIATION_YN=No 806 457 24.5 20.4 30
RADIATION_YN=Yes 566 217 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
19 observations deleted due to missingness
RADIATION_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 457 290 0.624 0.0175 0.590 0.659
24 342 81 0.510 0.0183 0.475 0.547
36 271 42 0.446 0.0185 0.411 0.484
48 227 16 0.418 0.0186 0.383 0.456
60 192 6 0.406 0.0187 0.371 0.445
120 54 20 0.348 0.0205 0.310 0.390
RADIATION_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 380 138 0.748 0.0186 0.712 0.785
24 295 47 0.651 0.0209 0.612 0.694
36 231 14 0.618 0.0216 0.577 0.662
48 180 9 0.592 0.0224 0.550 0.638
60 153 2 0.586 0.0226 0.543 0.632
120 41 7 0.550 0.0250 0.503 0.602
## Univariable Cox Proportional Hazard Model for: RADIATION_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
n= 1372, number of events= 674
(19 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RADIATION_YNYes -0.54563 0.57948 0.08245 -6.617 3.66e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes 0.5795 1.726 0.493 0.6811
Concordance= 0.566 (se = 0.01 )
Rsquare= 0.033 (max possible= 0.999 )
Likelihood ratio test= 46.22 on 1 df, p=1.056e-11
Wald test = 43.79 on 1 df, p=3.658e-11
Score (logrank) test = 44.88 on 1 df, p=2.09e-11
## Unadjusted Kaplan Meier Overall Survival Curve for: RADIATION_YN



Chemo Yes/No
uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n events median 0.95LCL 0.95UCL
CHEMO_YN=No 287 166 17.1 9.79 38.0
CHEMO_YN=Yes 1066 513 49.4 33.81 86.1
CHEMO_YN=Ukn 38 8 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
CHEMO_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 140 124 0.543 0.0303 0.487 0.606
24 108 17 0.475 0.0308 0.418 0.539
36 92 7 0.443 0.0310 0.386 0.508
48 74 10 0.391 0.0313 0.335 0.458
60 67 1 0.386 0.0314 0.329 0.453
120 21 6 0.338 0.0335 0.278 0.410
CHEMO_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 678 313 0.697 0.0143 0.670 0.726
24 512 109 0.581 0.0157 0.551 0.613
36 395 49 0.523 0.0162 0.492 0.555
48 320 15 0.502 0.0164 0.471 0.535
60 268 6 0.492 0.0166 0.460 0.525
120 73 20 0.441 0.0186 0.406 0.479
CHEMO_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 25 3 0.906 0.0521 0.809 1.000
24 23 2 0.833 0.0687 0.709 0.979
36 20 1 0.797 0.0746 0.663 0.957
48 17 0 0.797 0.0746 0.663 0.957
60 13 1 0.740 0.0884 0.586 0.935
120 3 1 0.683 0.0982 0.515 0.905
## Univariable Cox Proportional Hazard Model for: CHEMO_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n= 1391, number of events= 687
coef exp(coef) se(coef) z Pr(>|z|)
CHEMO_YNYes -0.43914 0.64459 0.08936 -4.915 8.9e-07 ***
CHEMO_YNUkn -1.27531 0.27934 0.36204 -3.523 0.000427 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes 0.6446 1.551 0.5410 0.7680
CHEMO_YNUkn 0.2793 3.580 0.1374 0.5679
Concordance= 0.558 (se = 0.008 )
Rsquare= 0.023 (max possible= 0.999 )
Likelihood ratio test= 31.72 on 2 df, p=1.295e-07
Wald test = 31.2 on 2 df, p=1.681e-07
Score (logrank) test = 32.28 on 2 df, p=9.767e-08
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: CHEMO_YN



Treatment Yes/No
uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
38 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 130 77 9.17 2.89 38.0
Tx_YN=TRUE 1223 602 41.40 32.26 64.4
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
38 observations deleted due to missingness
Tx_YN=FALSE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 54 65 0.460 0.0456 0.379 0.559
24 40 5 0.417 0.0452 0.337 0.516
36 38 1 0.406 0.0453 0.326 0.506
48 30 3 0.370 0.0459 0.290 0.472
60 27 0 0.370 0.0459 0.290 0.472
120 11 2 0.329 0.0501 0.244 0.443
Tx_YN=TRUE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 764 372 0.686 0.0135 0.660 0.713
24 580 121 0.574 0.0147 0.545 0.603
36 449 55 0.516 0.0151 0.488 0.547
48 364 22 0.490 0.0154 0.461 0.521
60 308 7 0.480 0.0155 0.450 0.511
120 83 24 0.429 0.0172 0.396 0.464
## Univariable Cox Proportional Hazard Model for: Tx_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
n= 1353, number of events= 679
(38 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
Tx_YNTRUE -0.5761 0.5621 0.1211 -4.756 1.97e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE 0.5621 1.779 0.4433 0.7127
Concordance= 0.535 (se = 0.005 )
Rsquare= 0.014 (max possible= 0.999 )
Likelihood ratio test= 19.53 on 1 df, p=9.928e-06
Wald test = 22.62 on 1 df, p=1.973e-06
Score (logrank) test = 23.25 on 1 df, p=1.42e-06
## Unadjusted Kaplan Meier Overall Survival Curve for: Tx_YN



Tumor specific Variables
Node Size
Cox Proportional Hazard Ratio
Model #1
Full analysis
model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
data = data)
Loglik converged before variable 6 ; beta may be infinite. X matrix deemed to be singular; variable 5
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F +
INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F +
EDUCATION_F, data = data)
n= 855, number of events= 507
(536 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -1.341e+00 2.616e-01 2.714e-01 -4.942 7.74e-07 ***
SURG_RAD_SEQRad Alone -6.307e-01 5.322e-01 1.695e-01 -3.720 0.000199 ***
SURG_RAD_SEQNo Treatment 4.729e-03 1.005e+00 1.568e-01 0.030 0.975932
SURG_RAD_SEQOther 7.213e-02 1.075e+00 2.661e-01 0.271 0.786367
SURG_RAD_SEQRad before and after Surg NA NA 0.000e+00 NA NA
SURG_RAD_SEQRad then Surg -1.371e+01 1.114e-06 8.014e+02 -0.017 0.986354
INSURANCE_FNone 2.807e-01 1.324e+00 1.884e-01 1.490 0.136349
INSURANCE_FMedicaid -1.492e-01 8.614e-01 1.708e-01 -0.873 0.382540
INSURANCE_FMedicare -5.684e-02 9.447e-01 1.347e-01 -0.422 0.673041
INSURANCE_FOther Government 3.082e-02 1.031e+00 3.974e-01 0.078 0.938188
INSURANCE_FUnknown -2.709e-01 7.627e-01 2.777e-01 -0.975 0.329313
AGE 3.137e-02 1.032e+00 4.928e-03 6.366 1.94e-10 ***
SEX_FFemale 1.287e-01 1.137e+00 9.538e-02 1.350 0.177131
RACE_FBlack 4.467e-01 1.563e+00 1.410e-01 3.167 0.001539 **
RACE_FOther/Unk 4.501e-01 1.569e+00 2.608e-01 1.726 0.084317 .
RACE_FAsian -1.730e-02 9.829e-01 1.753e-01 -0.099 0.921398
INCOME_F$38,000 - $47,999 -5.751e-02 9.441e-01 1.557e-01 -0.369 0.711907
INCOME_F$48,000 - $62,999 2.083e-01 1.232e+00 1.546e-01 1.347 0.177990
INCOME_F$63,000 + 2.132e-01 1.238e+00 1.875e-01 1.137 0.255423
U_R_FUrban -2.193e-03 9.978e-01 1.503e-01 -0.015 0.988359
U_R_FRural 1.191e-01 1.126e+00 3.145e-01 0.379 0.704988
FACILITY_TYPE_FComprehensive Comm Ca Program -3.121e-01 7.319e-01 2.192e-01 -1.424 0.154559
FACILITY_TYPE_FAcademic/Research Program -3.413e-01 7.109e-01 2.156e-01 -1.583 0.113393
FACILITY_TYPE_FIntegrated Network Ca Program -9.670e-02 9.078e-01 2.457e-01 -0.394 0.693925
FACILITY_LOCATION_FMiddle Atlantic 6.606e-02 1.068e+00 2.782e-01 0.237 0.812299
FACILITY_LOCATION_FSouth Atlantic 3.471e-01 1.415e+00 2.688e-01 1.291 0.196694
FACILITY_LOCATION_FEast North Central 3.387e-01 1.403e+00 2.773e-01 1.221 0.221931
FACILITY_LOCATION_FEast South Central 2.980e-01 1.347e+00 3.232e-01 0.922 0.356622
FACILITY_LOCATION_FWest North Central 4.813e-01 1.618e+00 2.947e-01 1.633 0.102458
FACILITY_LOCATION_FWest South Central 1.138e-02 1.011e+00 2.963e-01 0.038 0.969358
FACILITY_LOCATION_FMountain 3.990e-01 1.490e+00 3.475e-01 1.148 0.250819
FACILITY_LOCATION_FPacific 7.498e-02 1.078e+00 2.715e-01 0.276 0.782403
EDUCATION_F13 - 20.9% -1.483e-01 8.622e-01 1.432e-01 -1.035 0.300475
EDUCATION_F7 - 12.9% -3.731e-01 6.886e-01 1.670e-01 -2.235 0.025435 *
EDUCATION_FLess than 7% -4.431e-01 6.421e-01 1.951e-01 -2.271 0.023124 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 2.616e-01 3.823e+00 0.1537 0.4452
SURG_RAD_SEQRad Alone 5.322e-01 1.879e+00 0.3818 0.7420
SURG_RAD_SEQNo Treatment 1.005e+00 9.953e-01 0.7390 1.3661
SURG_RAD_SEQOther 1.075e+00 9.304e-01 0.6380 1.8107
SURG_RAD_SEQRad before and after Surg NA NA NA NA
SURG_RAD_SEQRad then Surg 1.114e-06 8.973e+05 0.0000 Inf
INSURANCE_FNone 1.324e+00 7.553e-01 0.9152 1.9154
INSURANCE_FMedicaid 8.614e-01 1.161e+00 0.6163 1.2040
INSURANCE_FMedicare 9.447e-01 1.058e+00 0.7255 1.2302
INSURANCE_FOther Government 1.031e+00 9.697e-01 0.4733 2.2473
INSURANCE_FUnknown 7.627e-01 1.311e+00 0.4425 1.3144
AGE 1.032e+00 9.691e-01 1.0219 1.0419
SEX_FFemale 1.137e+00 8.792e-01 0.9435 1.3712
RACE_FBlack 1.563e+00 6.397e-01 1.1856 2.0609
RACE_FOther/Unk 1.569e+00 6.375e-01 0.9409 2.6150
RACE_FAsian 9.829e-01 1.017e+00 0.6971 1.3858
INCOME_F$38,000 - $47,999 9.441e-01 1.059e+00 0.6958 1.2811
INCOME_F$48,000 - $62,999 1.232e+00 8.120e-01 0.9096 1.6676
INCOME_F$63,000 + 1.238e+00 8.080e-01 0.8571 1.7873
U_R_FUrban 9.978e-01 1.002e+00 0.7432 1.3396
U_R_FRural 1.126e+00 8.877e-01 0.6081 2.0865
FACILITY_TYPE_FComprehensive Comm Ca Program 7.319e-01 1.366e+00 0.4763 1.1248
FACILITY_TYPE_FAcademic/Research Program 7.109e-01 1.407e+00 0.4659 1.0846
FACILITY_TYPE_FIntegrated Network Ca Program 9.078e-01 1.102e+00 0.5608 1.4695
FACILITY_LOCATION_FMiddle Atlantic 1.068e+00 9.361e-01 0.6193 1.8429
FACILITY_LOCATION_FSouth Atlantic 1.415e+00 7.067e-01 0.8354 2.3965
FACILITY_LOCATION_FEast North Central 1.403e+00 7.127e-01 0.8148 2.4160
FACILITY_LOCATION_FEast South Central 1.347e+00 7.423e-01 0.7149 2.5382
FACILITY_LOCATION_FWest North Central 1.618e+00 6.180e-01 0.9081 2.8835
FACILITY_LOCATION_FWest South Central 1.011e+00 9.887e-01 0.5659 1.8078
FACILITY_LOCATION_FMountain 1.490e+00 6.710e-01 0.7543 2.9447
FACILITY_LOCATION_FPacific 1.078e+00 9.278e-01 0.6331 1.8350
EDUCATION_F13 - 20.9% 8.622e-01 1.160e+00 0.6512 1.1416
EDUCATION_F7 - 12.9% 6.886e-01 1.452e+00 0.4964 0.9552
EDUCATION_FLess than 7% 6.421e-01 1.557e+00 0.4381 0.9411
Concordance= 0.672 (se = 0.014 )
Rsquare= 0.188 (max possible= 0.999 )
Likelihood ratio test= 178.4 on 34 df, p=0
Wald test = 165.5 on 34 df, p=0
Score (logrank) test = 174.6 on 34 df, p=0
Summary of Model
model_one %>%
tidy(., exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Variable = term,
Hazard_Ratio = estimate) %>%
tbl_df %>%
print(n = nrow(.))
Prediction Logistic Regression Models
Surgery
no_Ukns <- data %>%
filter(SURGERY_YN != "Ukn") %>%
droplevels() %>%
mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
summary(fit_surg)
Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.44107 -0.20202 -0.14449 -0.06371 0.96267
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.311972 0.098891 3.155 0.00167 **
AGE_F(54,64] -0.042409 0.033392 -1.270 0.20445
AGE_F(64,74] -0.074782 0.038072 -1.964 0.04985 *
AGE_F(74,100] 0.009394 0.040508 0.232 0.81667
SEX_FFemale -0.016275 0.027548 -0.591 0.55483
RACE_FBlack 0.002899 0.044717 0.065 0.94832
RACE_FOther/Unk -0.141571 0.074180 -1.908 0.05668 .
RACE_FAsian -0.028241 0.046976 -0.601 0.54789
INCOME_F$38,000 - $47,999 0.003372 0.044836 0.075 0.94006
INCOME_F$48,000 - $62,999 0.030403 0.045650 0.666 0.50559
INCOME_F$63,000 + 0.035080 0.053776 0.652 0.51438
U_R_FUrban 0.012454 0.043167 0.289 0.77304
U_R_FRural -0.117733 0.101984 -1.154 0.24867
FACILITY_TYPE_FComprehensive Comm Ca Program -0.100401 0.065746 -1.527 0.12713
FACILITY_TYPE_FAcademic/Research Program -0.084019 0.064255 -1.308 0.19139
FACILITY_TYPE_FIntegrated Network Ca Program -0.025077 0.074757 -0.335 0.73737
FACILITY_LOCATION_FMiddle Atlantic -0.099926 0.070949 -1.408 0.15939
FACILITY_LOCATION_FSouth Atlantic -0.090808 0.069082 -1.314 0.18906
FACILITY_LOCATION_FEast North Central -0.185193 0.071272 -2.598 0.00954 **
FACILITY_LOCATION_FEast South Central -0.184476 0.088431 -2.086 0.03728 *
FACILITY_LOCATION_FWest North Central -0.166858 0.077151 -2.163 0.03086 *
FACILITY_LOCATION_FWest South Central -0.126804 0.077320 -1.640 0.10140
FACILITY_LOCATION_FMountain -0.033443 0.094617 -0.353 0.72383
FACILITY_LOCATION_FPacific -0.074151 0.069071 -1.074 0.28335
EDUCATION_F13 - 20.9% 0.006692 0.041738 0.160 0.87265
EDUCATION_F7 - 12.9% 0.051781 0.046418 1.116 0.26495
EDUCATION_FLess than 7% 0.023182 0.054392 0.426 0.67007
EXPN_GROUPPre-Expansion 0.052101 0.035014 1.488 0.13714
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.1403115)
Null deviance: 117.74 on 830 degrees of freedom
Residual deviance: 112.67 on 803 degrees of freedom
(527 observations deleted due to missingness)
AIC: 755.8
Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 1.3661161 1.1254121 1.6583019
AGE_F(54,64] 0.9584776 0.8977560 1.0233063
AGE_F(64,74] 0.9279461 0.8612234 0.9998382
AGE_F(74,100] 1.0094385 0.9323936 1.0928498
SEX_FFemale 0.9838567 0.9321440 1.0384383
RACE_FBlack 1.0029035 0.9187465 1.0947693
RACE_FOther/Unk 0.8679933 0.7505407 1.0038260
RACE_FAsian 0.9721538 0.8866434 1.0659110
INCOME_F$38,000 - $47,999 1.0033780 0.9189679 1.0955414
INCOME_F$48,000 - $62,999 1.0308703 0.9426425 1.1273558
INCOME_F$63,000 + 1.0357023 0.9320959 1.1508251
U_R_FUrban 1.0125319 0.9303889 1.1019271
U_R_FRural 0.8889335 0.7278814 1.0856202
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9044744 0.7951210 1.0288673
FACILITY_TYPE_FAcademic/Research Program 0.9194137 0.8106199 1.0428088
FACILITY_TYPE_FIntegrated Network Ca Program 0.9752343 0.8423178 1.1291248
FACILITY_LOCATION_FMiddle Atlantic 0.9049043 0.7874283 1.0399065
FACILITY_LOCATION_FSouth Atlantic 0.9131933 0.7975533 1.0456004
FACILITY_LOCATION_FEast North Central 0.8309436 0.7226109 0.9555173
FACILITY_LOCATION_FEast South Central 0.8315396 0.6992151 0.9889063
FACILITY_LOCATION_FWest North Central 0.8463194 0.7275504 0.9844769
FACILITY_LOCATION_FWest South Central 0.8809062 0.7570336 1.0250480
FACILITY_LOCATION_FMountain 0.9671096 0.8034114 1.1641620
FACILITY_LOCATION_FPacific 0.9285313 0.8109672 1.0631385
EDUCATION_F13 - 20.9% 1.0067146 0.9276395 1.0925305
EDUCATION_F7 - 12.9% 1.0531453 0.9615626 1.1534506
EDUCATION_FLess than 7% 1.0234531 0.9199605 1.1385882
EXPN_GROUPPre-Expansion 1.0534823 0.9836113 1.1283165
LS0tCnRpdGxlOiAiQ3V0YW5lb3VzIFQtQ2VsbCBMeW1waG9tYSBBbmFseXNpcyAtIEEgUmV2aWV3IG9mIHRoZSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzE2LzIwMTkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJ0aWR5ciIpCmxpYnJhcnkoImtuaXRyIikKbGlicmFyeSgidGFibGVvbmUiKQpsaWJyYXJ5KCJmb3JjYXRzIikKbGlicmFyeSgic3Vydml2YWwiKQpsaWJyYXJ5KCJucHN1cnYiKQpsaWJyYXJ5KCJicm9vbSIpCmxpYnJhcnkoInRpYmJsZSIpCmxpYnJhcnkoInJlYWRyIikKbGlicmFyeSgic3Vydm1pbmVyIikKbGlicmFyeSgic3RyaW5nciIpCgoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1UUlVFKQonJSFpbiUnIDwtIGZ1bmN0aW9uKHgseSkhKCclaW4lJyh4LHkpKQpgYGAKCmBgYHtyfQpwX3RhYmxlIDwtIGZ1bmN0aW9uKHRhYl9kYXRhLCAuLi4pIHsKICB0YWJfZGF0YV8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZSh0YWJfZGF0YSkpCiAgCiAgdGFibGVfcCA8LSBkby5jYWxsKENyZWF0ZVRhYmxlT25lLCAKICAgICAgICAgICAgICAgICAgICAgbGlzdChkYXRhID0gYXMubmFtZSh0YWJfZGF0YV8yKSwgaW5jbHVkZU5BID0gVFJVRSwgLi4uKSkKICB0YWJsZV9wX291dCA8LSBwcmludCh0YWJsZV9wLAogICAgICAgICAgICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHByaW50VG9nZ2xlID0gRkFMU0UpCiAga2FibGUodGFibGVfcF9vdXQsCiAgICAgICAgYWxpZ24gPSAiYyIpCn0KYGBgCgpgYGB7cn0KdW5pX3ZhciA8LSBmdW5jdGlvbih0ZXN0X3ZhciwgZGF0YV9pbXApIHsKCiAgICAgICAgICAgICAgICAKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIAogICAgICAgIGYgPC0gYXMuZm9ybXVsYShwYXN0ZSgiU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5uYW1lKHRlc3RfdmFyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiB+ICIgKSkKICAgICAgICAKICAgICAgICBkYXRhX2ltcF8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZShkYXRhX2ltcCkpCgogICAgICAgIGttX2ZpdCA8LSBkby5jYWxsKCJzdXJ2Zml0IiwgbGlzdChmb3JtdWxhID0gZiwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKICAgICAgICBwcmludChrbV9maXQpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIHByaW50KHN1bW1hcnkoa21fZml0LCB0aW1lcyA9IGMoMTIsIDI0LCAzNiwgNDgsIDYwLCAxMjApKSkKICAgICAgICBjYXQoIlxuIikKCgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbml2YXJpYWJsZSBDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBNb2RlbCBmb3I6ICIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgbl9sZXZlbHMgPC0gbmxldmVscyhkYXRhX2ltcFtbdGVzdF92YXJdXSkKCiAgICAgICAgaWYobl9sZXZlbHMgPT0gMSl7CiAgICAgICAgICAgICAgICBwcmludCgiT25seSBvbmUgbGV2ZWwsIG5vIENveCBtb2RlbCBwZXJmb3JtZWQiKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIH0gZWxzZSB7CgoKICAgICAgICAgICAgICAgIGNveF9maXQgPC0gZG8uY2FsbCgiY294cGgiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgICAgICAgICAgcHJpbnQoc3VtbWFyeShjb3hfZml0KSkKICAgICAgICAgICAgICAgIGNhdCgiXG4iKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkby5jYWxsKCJnZ2ZvcmVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KG1vZGVsID0gY294X2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKCiAgICAgICAgfQoKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMgVW5hZGp1c3RlZCBLYXBsYW4gTWVpZXIgT3ZlcmFsbCBTdXJ2aXZhbCBDdXJ2ZSBmb3I6ICIsIHRlc3RfdmFyKQoKCiAgICAgICAgcCA8LSBkby5jYWxsKCJnZ3N1cnZwbG90IiwKICAgICAgICAgICAgICAgICAgICAgbGlzdChmaXQgPSBrbV9maXQsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiamNvIiwgY2Vuc29yID0gRkFMU0UsIGxlZ2VuZCA9ICJyaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXR5cGUgPSAic3RyYXRhIiwgeGxhYiA9ICJUaW1lIChNb250aHMpIikpCgogICAgICAgIHByaW50KHApCgp9CgpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCk5ITGV4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfTkhMRXh0ci4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKYnJlYXN0IDwtICByZWFkX2Z3ZignTkNEQlBVRl9CcmVhc3QuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKdnVsdmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1Z1bHZhLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZhZ2luYSA8LSAgcmVhZF9md2YoJ05DREJQVUZfVmFnaW5hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnBlbmlzIDwtICByZWFkX2Z3ZignTkNEQlBVRl9QZW5pcy4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgojQ29tYmluZSBkYXRhIGZvciBhbGwgc3Vic2l0ZXMKZGF0IDwtIGJpbmRfcm93cyhsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgCiAgICAgICAgICAgICAgICAgdnVsdmEsIHZhZ2luYSwgcGVuaXMsIE5ITGV4dHIpCgpybShsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgdnVsdmEsIHZhZ2luYSwgCiAgIHBlbmlzLCBOSExleHRyKQoKcHJpbV9zaXRlX3RleHQgPC0gZGF0YV9mcmFtZShQUklNQVJZX1NJVEUgPSBjKAojTkhMIHNpdGVzCiJDMDAwIiwgCiJDMDAxIiwgCiJDMDAyIiwgCiJDMDAzIiwgCiJDMDA0IiwgCiJDMDA1IiwgCiJDMDA2IiwgCiJDMDA4IiwKIkMwMDkiLCAKIkMwMTkiLCAKIkMwMjAiLCAKIkMwMjEiLAoiQzAyMiIsIAoiQzAyMyIsIAoiQzAyNCIsIAoiQzAyOCIsIAoiQzAyOSIsCiJDMDMwIiwKIkMwMzEiLAoiQzAzOSIsIAoiQzA0MCIsIAoiQzA0MSIsIAoiQzA0OCIsCiJDMDQ5IiwgCiJDMDUwIiwgCiJDMDUxIiwgCiJDMDUyIiwgCiJDMDU4IiwgCiJDMDU5IiwKIkMwNjAiLCAKIkMwNjEiLCAKIkMwNjIiLCAKIkMwNjgiLCAKIkMwNjkiLCAKIkMwNzkiLCAgCiJDMDk4IiwKIkMwOTkiLAoiQzExMSIsCiJDMTQyIiwKIkMzMDAiLAoiQzM3OSIsCiJDNDIyIiwKIkM3NzAiLAoiQzc3MSIsCiJDNzcyIiwKIkM3NzMiLAoiQzc3NCIsCiJDNzc1IiwKIkM3NzgiLAoiQzc3OSIpLAoKU0lURV9URVhUID0gYygKIkMwMC4wIEV4dGVybmFsIExpcDogVXBwZXIgTk9TIiwKIkMwMC4xIEV4dGVybmFsIExpcDogTG93ZXIgTk9TIiwKIkMwMC4yIEV4dGVybmFsIExpcDogTk9TIiwKIkMwMC4zIExpcDogVXBwZXIgTXVjb3NhIiwKIkMwMC40IExpcDogTG93ZXIgTXVjb3NhIiwKIkMwMC41IExpcDogTXVjb3NhIE5PUyIsCiJDMDAuNiBMaXA6IENvbW1pc3N1cmUiLAoiQzAwLjggTGlwOiBPdmVybGFwcGluZyIsCiJDMDAuOSBMaXAgTk9TIiwKIkMwMS45IFRvbmd1ZTogQmFzZSBOT1MiLAoiQzAyLjAgVG9uZ3VlOiBEb3JzYWwgTk9TIiwKIkMwMi4xIFRvbmd1ZTogQm9yZGVyLCBUaXAiLAoiQzAyLjIgVG9uZ3VlOiBWZW50cmFsIE5PUyIsCiJDMDIuMyBUb25ndWU6IEFudGVyaW9yIE5PUyIsCiJDMDIuNCBMaW5ndWFsIFRvbnNpbCIsCiJDMDIuOCBUb25ndWU6IE92ZXJsYXBwaW5nIiwKIkMwMi45IFRvbmd1ZTogTk9TIiwKIkMwMy4wIEd1bTogVXBwZXIiLAoiQzAzLjEgR3VtOiBMb3dlciIsCiJDMDMuOSBHdW0gTk9TIiwKIkMwNC4wIE1vdXRoOiBBbnRlcmlvciBGbG9vciIsCiJDMDQuMSBNb3V0aDogTGF0ZXJhbCBGbG9vciIsCiJDMDQuOCBNb3V0aDogT3ZlcmxhcHBpbmcgRmxvb3IiLAoiQzA0LjkgRmxvb3Igb2YgTW91dGggTk9TIiwKIkMwNS4wIEhhcmQgUGFsYXRlIiwKIkMwNS4xIFNvZnQgUGFsYXRlIE5PUyIsCiJDMDUuMiBVdnVsYSIsCiJDMDUuOCBQYWxhdGU6IE92ZXJsYXBwaW5nIiwKIkMwNS45IFBhbGF0ZSBOT1MiLAoiQzA2LjAgQ2hlZWsgTXVjb3NhIiwKIkMwNi4xIE1vdXRoOiBWZXN0aWJ1bGUiLAoiQzA2LjIgUmV0cm9tb2xhciBBcmVhIiwKIkMwNi44IE1vdXRoOiBPdGhlciBPdmVybGFwcGluZyIsCiJDMDYuOSBNb3V0aCBOT1MiLAoiQzA3LjkgUGFyb3RpZCBHbGFuZCIsCiAgIkMwOS44IFRvbnNpbDogT3ZlcmxhcHBpbmciLAogICJDMDkuOSBUb25zaWwgTk9TIiwKICAiQzExLjEgTmFzb3BoYXJ5bng6IFBvc3RlciBXYWxsIiwgCiAgIkMxNC4yIFdhbGRleWVyIFJpbmciLAogICJDMzAuMCBOYXNhbCBDYXZpdHkiLAogICJDMzcuOSBUaHltdXMiLAogICJDNDIuMiBTcGxlZW4iLAogICJDNzcuMCBMeW1waCBOb2RlczogSGVhZEZhY2VOZWNrIiwKICAiQzc3LjEgSW50cmF0aG9yYWNpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny4yIEludHJhLWFiZG9taW5hbCBMeW1waE5vZGVzIiwKICAiQzc3LjMgTHltcGggTm9kZXMgb2YgYXhpbGxhIG9yIGFybSAiLAogICJDNzcuNCBMeW1waCBOb2RlczogTGVnIiwKICAiQzc3LjUgUGVsdmljIEx5bXBoIE5vZGVzIiwKICAiQzc3LjggTHltcGggTm9kZXM6IG11bHRpcGxlIHJlZ2lvbiIsCiAgIkM3Ny45IEx5bXBoIE5vZGUgTk9TIikpCgoKZGF0IDwtIG1lcmdlKGRhdCwgcHJpbV9zaXRlX3RleHQsIGJ5ID0gIlBSSU1BUllfU0lURSIsIGFsbC54ID0gVFJVRSkgCgpybShwcmltX3NpdGVfdGV4dCkKCiMgY29udmVydCBudW1lcmljIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBudW1lcmljIGNsYXNzCm51bV92YXJzIDwtIGMoIkFHRSIsICJDUk9XRkxZIiwgIlRVTU9SX1NJWkUiLCAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsICJEWF9SQURfU1RBUlRFRF9EQVlTIiwgICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLAogICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX0VMQVBTRURfUlhfREFZUyIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgCiAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIkRYX09USEVSX1NUQVJURURfREFZUyIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLAogICAgICAgICAgICAgICJSQURfTlVNX1RSRUFUX1ZPTCIpCgpkYXRbbnVtX3ZhcnNdIDwtIGxhcHBseShkYXRbbnVtX3ZhcnNdLCBhcy5udW1lcmljKQoKCiMgY29udmVydCBmYWN0b3IgdmFyaWFibGVzIGZyb20gY2hhcmFjdGVyIGNsYXNzIHRvIGZhY3RvciBjbGFzcwp2YXJzIDwtIG5hbWVzKGRhdCkKZmFjdF92YXJzIDwtIHZhcnNbISh2YXJzICVpbiUgbnVtX3ZhcnMpXSAjIGJhc2ljYWxseSBhbGwgb2YgdGhlIG5vbi1udW1lcmljcwoKZGF0W2ZhY3RfdmFyc10gPC0gbGFwcGx5KGRhdFtmYWN0X3ZhcnNdLCBhcy5jaGFyYWN0ZXIpCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuZmFjdG9yKQoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfVFlQRV9GID0gZmN0X3JlY29kZShGQUNJTElUWV9UWVBFX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tdW5pdHkgQ2FuY2VyIFByb2dyYW0iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb21wcmVoZW5zaXZlIENvbW0gQ2EgUHJvZ3JhbSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjYWRlbWljL1Jlc2VhcmNoIFByb2dyYW0iID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlZ3JhdGVkIE5ldHdvcmsgQ2EgUHJvZ3JhbSIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShGQUNJTElUWV9MT0NBVElPTl9GID0gZmN0X3JlY29kZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IEVuZ2xhbmQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWRkbGUgQXRsYW50aWMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCBBdGxhbnRpYyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgTm9ydGggQ2VudHJhbCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhc3QgU291dGggQ2VudHJhbCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgTm9ydGggQ2VudHJhbCIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QgU291dGggQ2VudHJhbCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vdW50YWluIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyIgPSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dCBvZiBVUyIgPSAiMCIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfR0VPR1JBUEhZID0gZmN0X2NvbGxhcHNlKEZBQ0lMSVRZX0xPQ0FUSU9OX0NELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vcnRoZWFzdCIgPSBjKCIxIiwgIjIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb3V0aCIgPSBjKCIzIiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWR3ZXN0IiA9IGMoIjQiLCAiNSIsICI2IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2VzdCIgPSBjKCI4IiwgIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfRiA9IGN1dChBR0UsIGMoMCwgNTQsIDY0LCA3NCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShBR0VfNDAgPSBjdXQoQUdFLCBjKDAsIDQwLCAxMDApKSkgJT4lCiAgICAgICAgbXV0YXRlKFNFWF9GID0gZmN0X3JlY29kZShTRVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hbGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGZW1hbGUiID0gIjIiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBQ0VfRiA9IGZjdF9jb2xsYXBzZShSQUNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXaGl0ZSIgPSBjKCIwMSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCbGFjayIgPSBjKCIwMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc2lhbiIgPSBjKCIwNCIsICIwNSIsICIwNiIsICIwNyIsICIwOCIsICIxMCIsICIxMSIsICIxMiIsICIxMyIsICIxNCIsICIxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE2IiwgIjE3IiwgIjIwIiwgIjIxIiwgIjIyIiwgIjI1IiwgIjI2IiwgIjI3IiwgIjI4IiwgIjMwIiwgIjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMzIiLCAiOTYiLCAiOTciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIvVW5rIiA9IGMoIjAzIiwgIjk4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSElTUEFOSUMgPSBmY3RfY29sbGFwc2UoU1BBTklTSF9ISVNQQU5JQ19PUklHSU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9IGMoIjkiKSkpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWNvZGUoSU5TVVJBTkNFX1NUQVRVUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1lZGljYXJlIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgR292ZXJubWVudCIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOU1VSQU5DRV9GID0gZmN0X3JlbGV2ZWwoSU5TVVJBTkNFX0YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByaXZhdGUiKSkgJT4lCiAgICAgICAgbXV0YXRlKElOQ09NRV9GID0gZmN0X3JlY29kZShNRURfSU5DX1FVQVJfMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiAkMzgsMDAwIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDM4LDAwMCAtICQ0Nyw5OTkiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNDgsMDAwIC0gJDYyLDk5OSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQ2MywwMDAgKyIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoRURVQ0FUSU9OX0YgPSBmY3RfcmVjb2RlKE5PX0hTRF9RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIxJSBvciBtb3JlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMyAtIDIwLjklIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI3IC0gMTIuOSUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlc3MgdGhhbiA3JSIgPSAiNCIpKSAlPiUKICAgICAgICBtdXRhdGUoVV9SX0YgPSBmY3RfY29sbGFwc2UoVVJfQ0RfMTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZXRybyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXJiYW4iID0gYygiNCIsICI1IiwgIjYiLCAiNyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVyYWwiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQ0xBU1NfT0ZfQ0FTRV9GID0gZmN0X2NvbGxhcHNlKENMQVNTX09GX0NBU0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxfUGFydF9QcmltID0gYygiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE0IiwgIjIwIiwgIjIxIiwgIjIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlcl9GYWNpbGl0eSA9IGMoIjAwIikpKSAlPiUKICAgICAgICBtdXRhdGUoR1JBREVfRiA9IGZjdF9yZWNvZGUoR1JBREUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSTogV2VsbCBEaWZmIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSTogTW9kIERpZmYiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIElJSTogUG9vciBEaWZmIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJVjogVW5kaWZmL0FuYXBsYXN0aWMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5BL1Vua293biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmY3RfaW5mcmVxKEhJU1RPTE9HWSkpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRiA9IGZhY3RvcihISVNUT0xPR1lfRikpICU+JQogICAgICAgIG11dGF0ZShISVNUT0xPR1lfRl9MSU0gPSBmY3RfbHVtcChISVNUT0xPR1lfRiwgcHJvcCA9IDAuMDUpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fVCA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVsZXZlbChUTk1fQ0xJTl9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX04gPSBmY3RfcmVjb2RlKFROTV9DTElOX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9NID0gZmN0X3JlY29kZShUTk1fQ0xJTl9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfVCA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVsZXZlbChUTk1fUEFUSF9ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX04gPSBmY3RfcmVjb2RlKFROTV9QQVRIX04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9NID0gZmN0X3JlY29kZShUTk1fUEFUSF9NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9DTElOX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfU1RBR0VfR1JPVVAgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1NUQUdFX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOUyA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmVzaWR1YWwiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzaWR1YWwsIE5PUyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaWNyb3Njb3BpYyBSZXNpZCIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWNyb3Njb3BpYyBSZXNpZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3QgZXZhbHVhYmxlIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmciID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTUFSR0lOU19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIxIiwgIjIiLCAiMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIgPSBjKCIwIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcvVW5rL05BIiA9IGMoIjciLCAiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBRE1fSE9TUF8zMF9EQVlTX0YgPSBmY3RfcmVjb2RlKFJFQURNX0hPU1BfMzBfREFZUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnX29yX05vX1JlYWRtaXQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucGxhbl9SZWFkbWl0X1NhbWUiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYW5fUmVhZG1pdF9TYW1lIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuVW5wbGFuX1NhbWUiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX1NVTU1fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtIFJhZGlhdGlvbiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2FjdGl2ZSBJbXBsYW50cyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWRpb2lzb3RvcGVzIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJlYW0gKyBJbXAgb3IgSXNvdG9wZXMiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaWF0aW9uLCBOT1MiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzMwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl8zMF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV8zMCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF8zMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUFVGXzkwX0RBWV9NT1JUX0NEX0YgPSBmY3RfcmVjb2RlKFBVRl85MF9EQVlfTU9SVF9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGl2ZV85MCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVhZF85MCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiA9IGZjdF9yZWNvZGUoTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOZWdfTHltcGhWYXNjX0ludiIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQb3NfTHVtcGhWYXNjX0ludiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GID0gZmN0X3JlY29kZShSWF9IT1NQX1NVUkdfQVBQUl8yMDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb19TdXJnIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfQXNzaXN0IiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUm9ib3RfdG9fT3BlbiIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5kb19MYXBfdG9fT3BlbiIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW5fVW5rbm93biIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9ICJBbGwiKSAlPiUKICAgICAgICBtdXRhdGUoQWxsID0gZmFjdG9yKEFsbCkpICU+JQogICAgICAgIG11dGF0ZShSRUFTT05fRk9SX05PX1NVUkdFUllfRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcGVyZm9ybWVkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZyBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gc3VyZywgcHQgZGllZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHVuayBpZiBkb25lIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShTVVJHRVJZX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSA9PSAiOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVa24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1RGID0gY2FzZV93aGVuKFNVUkdFUllfWU4gPT0gIlllcyIgfiBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUkdFUllfWU4gPT0gIk5vIiB+IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiBOQSkpICAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT05fRiA9IGZjdF9yZWNvZGUoUkVBU09OX0ZPUl9OT19SQURJQVRJT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIG5vdCByZWNvbW1lbmRlZCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkIGR1ZSB0byBwdCBmYWN0b3JzIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBSYWQsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCByZWMsIG5vdCBkb25lIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBwdCByZWZ1c2VkIiA9ICI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoUkFESUFUSU9OX1lOID0gaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkVBU09OX0ZPUl9OT19SQURJQVRJT04gPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR1JBRF9TRVFfRiA9IGZjdF9yZWNvZGUoUlhfU1VNTV9TVVJHUkFEX1NFUSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgb3IgU3VyZyBvciBSYWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBTdXJnIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgYmVmb3JlIFJhZCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludHJhb3AgUmFkIHBsdXMgb3RoZXIiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVEgPSBmY3RfcmVsZXZlbChTVVJHX1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIEFsb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIEFsb25lIikpICU+JQogICAgICAgIG11dGF0ZShDSEVNT19ZTiA9IGZjdF9jb2xsYXBzZShSWF9TVU1NX0NIRU1PLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMDAiLCAiODIiLCAiODUiLCAiODYiLCAiODciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIgPSBjKCIwMSIsICIwMiIsICIwMyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiA9IGMoIjg4IiwgIjk5IikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgTm8gQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcsIE5vIHJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJBRElBVElPTl9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkLCBObyBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gU3VyZywgTm8gUmFkLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIyIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjMiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyB0aGVuIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgYmVmb3JlIGFuZCBhZnRlciBTdXJnLCBZZXMgQ2hlbW8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIpKSkpKSkpKSkpKSkpICU+JQogICAgICAgIG11dGF0ZShTVVJHX1JBRF9TRVFfQyA9IGZjdF9pbmZyZXEoU1VSR19SQURfU0VRX0MpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gYXMubnVtZXJpYyhUVU1PUl9TSVpFKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGlmZWxzZShUX1NJWkUgPT0gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPiAwICYgVF9TSVpFIDwgMTAgfCBUX1NJWkUgPT0gOTkxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCAxIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAxMCAmIFRfU0laRSA8IDIwIHwgVF9TSVpFID09IDk5MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxLTIgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAyMCAmIFRfU0laRSA8IDMwIHwgVF9TSVpFID09IDk5MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMi0zIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDMwICYgVF9TSVpFIDwgNDAgfCBUX1NJWkUgPT0gOTk0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA0MCAmIFRfU0laRSA8IDUwIHwgVF9TSVpFID09IDk5NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA1MCAmIFRfU0laRSA8IDYwIHwgVF9TSVpFID09IDk5NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNS02IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID49IDYwICYgVF9TSVpFIDw9IDk4NyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9TSVpFID09IDk4MCB8IFRfU0laRSA9PSA5ODkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5OTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj42IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID09IDk4OCB8IFRfU0laRSA9PSA5OTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQV91bmsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgZm9jdXMiKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmFjdG9yKFRfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBmY3RfcmVsZXZlbChUX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gVHVtb3IiLCAiTWljcm9zY29waWMgZm9jdXMiLCAiPCAxIGNtIiwgIjEtMiBjbSIsICIyLTMgY20iLCAiMy00IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQtNSBjbSIsICI1LTYgY20iLCAiPjYgY20iLCAiTkFfdW5rIikpICU+JQogICAgICAgIG11dGF0ZShtZXRzX2F0X2R4ID0gY2FzZV93aGVuKENTX01FVFNfRFhfTFVORyA9PSAiMSIgfiAiTHVuZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CT05FID09ICIxIiB+ICJCb25lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU19NRVRTX0RYX0JSQUlOID09ICIxIiB+ICJCcmFpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9MSVZFUiA9PSAiMSIgfiAiTGl2ZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiTm9uZS9PdGhlci9VbmsvTkEiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1FRElDQUlEX0VYUE5fQ09ERSA9IGZjdF9yZWNvZGUoTUVESUNBSURfRVhQTl9DT0RFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb24tRXhwYW5zaW9uIFN0YXRlIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSmFuIDIwMTQgRXhwYW5zaW9uIFN0YXRlcyIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cHByZXNzZWQgZm9yIEFnZXMgMCAtIDM5IiA9ICI5IikpICAlPiUKICAgICAgICBtdXRhdGUoRVhQTl9HUk9VUCA9ICBjYXNlX3doZW4oTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxNCIsICIyMDE1IikgfiAiUG9zdC1FeHBhbnNpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIiwgIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAwNCIsICIyMDA1IiwgIjIwMDYiLCAiMjAwNyIsICIyMDA4IiwgIjIwMDkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIk5vbi1FeHBhbnNpb24gU3RhdGUiKSB+ICJQcmUtRXhwYW5zaW9uIiwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSB+ICJQcmUtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICVpbiUgYygiTGF0ZSBFeHBhbnNpb24gU3RhdGVzICg+IEphbiAyMDE0KSIpICYgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIkV4Y2x1ZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFID09ICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgfiAiRXhjbHVkZSIpKSAlPiUKICAKICBtdXRhdGUocHJlXzIwMTQgPSBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMDA5IiwgIjIwMTAiLCAiMjAxMSIsICIyMDEyIiwgIjIwMTMiKSkgJT4lCiAgCiAgbXV0YXRlKG1ldHNfYXRfZHhfRiA9IGlmZWxzZShtZXRzX2F0X2R4ID09ICJOb25lL090aGVyL1Vuay9OQSIsIEZBTFNFLCBUUlVFKSkgJT4lIAogIAogIG11dGF0ZShUeF9ZTiA9IGlmZWxzZShTVVJHX1JBRF9TRVEgPT0gIk5vIFRyZWF0bWVudCIgJiBDSEVNT19ZTiA9PSAiTm8iLCBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShDSEVNT19ZTiA9PSAiVWtuIiwgTkEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSkpKQoKZmFjdF92YXJzXzIgPC0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiQUdFX0YiLCAiU0VYX0YiLCAiUkFDRV9GIiwKICAgICAgICAgICAgICAgICAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLAogICAgICAgICAgICAgICAgICJDRENDX1RPVEFMX0JFU1QiLCAiQ0xBU1NfT0ZfQ0FTRV9GIiwgIllFQVJfT0ZfRElBR05PU0lTIiwgIlBSSU1BUllfU0lURSIsICJISVNUT0xPR1kiLAogICAgICAgICAgICAgICAgICJCRUhBVklPUiIsICJHUkFERV9GIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLCAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLAogICAgICAgICAgICAgICAgICJNQVJHSU5TIiwgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsICJtZXRzX2F0X2R4IikKCgpkYXQgPC0gZGF0ICU+JQogICAgICAgIG11dGF0ZV9hdChmYWN0X3ZhcnNfMiwgZnVucyhmYWN0b3IoLikpKQoKYGBgCgoKIyBFeHRyYWN0IERhdGEgb2YgSW50ZXJlc3QKCmBgYHtyfQoKCiMgTm9uLUhvZGdraW4gTHltcGhvbWEgU2l0ZXMKc2l0ZV9jb2RlIDwtIGMoIkMwMDEiLCJDMDk4IiwgIkMwOTkiLCAiQzExMSIsICJDMTQyIiwgIkMzNzkiLCAiQzQyMiIsIkM3NzAiLAoiQzc3MSIsIkM3NzIiLCJDNzczIiwiQzc3NCIsICJDNzc1IiwgIkM3NzgiLCJDNzc5IiwgCiNhZGRpdGlvbmFsIHNpdGVzCiJDMzAwIiwgIkMwMTkiLCAiQzAyMSIsIAoiQzAyOSIsICJDMDMwIiwgIkMwMzkiLCAiQzA0OSIsICJDMDUwIiwgIkMwNTEiLCAiQzA1MiIsICAiQzA1OCIsICJDMDU5IiwgIkMwNjAiLAoiQzA2MSIsICJDMDY5IiwgIkMwMDAiLCAiQzAwMSIsICJDMDAyIiwgIkMwMDMiLCAiQzAwNCIsICJDMDA1IiwgIkMwMDYiLCAiQzAwOCIsCiJDMDA5IiwgIkMwMTkiLCAiQzAyMCIsICJDMDIxIiwgIkMwMjIiLCAiQzAyMyIsICJDMDI0IiwgIkMwMjgiLCAiQzAyOSIsICJDMDMwIiwKIkMwMzEiLCAiQzAzOSIsICJDMDQwIiwgIkMwNDEiLCAiQzA0OSIsICJDMDUwIiwgIkMwNTEiLCAiQzA1MiIsICJDMDU4IiwgIkMwNTkiLAoiQzA2MCIsICJDMDYxIiwgIkMwNjIiLCAiQzA2OCIsICJDMDY5IiwgIkMwNzkiKQoKI215Y29zaXMgZnVuZ29pZGVzLCBTZXphcnkgc3luZHJvbWUsIHN1YmN1dGFuZW91cyBwYW5uaWN1bGl0aXMtbGlrZSBULWNlbGwgbHltcGhvbWEsCiNjdXRhbmVvdXMgVC1jZWxsIGx5bXBob21hLCBOT1MsIHByaW1hcnkgY3V0YW5lb3VzIENEMzArVC1jZWxsIGx5bXBob21hLCAKI05LL1QtY2VsbCBseW1waG9tYSwgcHJpbWFyeSBjdXRhbmVvdXMgZ2FtbWEtZGVsdGEgVC1jZWxsIGx5bXBob21hLCAKI2FuZCBibGFzdGljIE5LIGNlbGwgbHltcGhvbWEsIHJlc3BlY3RpdmVseQpoaXN0b19jb2RlIDwtIGMoIjk3MDAiLCAiOTcwMSIsICI5NzA4IiwgIjk3MDkiLCAiOTcxOCIsICI5NzE5IiwgIjk3MjYiLCAiOTcyNyIpCgpiZWhhdmlvcl9jb2RlIDwtIGMoIjMiKQoKZGF0YSA8LSBkYXQgJT4lCiAgICAgICAgZmlsdGVyKEJFSEFWSU9SICVpbiUgYmVoYXZpb3JfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKFBSSU1BUllfU0lURSAlaW4lIHNpdGVfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKEhJU1RPTE9HWSAlaW4lIGhpc3RvX2NvZGUpICU+JQogICAgICAgICNmaWx0ZXIoQUdFID49IDE4KSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoUFVGX1ZJVEFMX1NUQVRVUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMpID09IEZBTFNFKSAgJT4lCiAgICAgICAgZmlsdGVyKFNFUVVFTkNFX05VTUJFUiA9PSAiMDAiKSAKCmZpbGVfcGF0aCA8LSBjKCIvVXNlcnMvYmVhc3RhdGxpZmUvR29vZ2xlIERyaXZlL1Blbm4vUmVzZWFyY2gvQmFyYmllcmkvTkNEQiIpCnNhdmUoZGF0YSwKICAgICAgZmlsZSA9IHBhc3RlMChmaWxlX3BhdGgsICIvTUZfZGF0YS5SZGEiKSkKYGBgCgpgYGB7ciBsb2FkRGF0YX0KI2xvYWQoIk1GX2RhdGEuUmRhIikKYGBgCgoKRGF0YSBpbmNsdWRpbmcgc2tpbiB0dW1vcnMgd2FzIG9idGFpbmVkIGZyb20gdGhlIE5DQkQgb24gT2N0b2JlciA3LCAyMDE5LiBDYXNlcyB0aGF0IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBhbmFseXNpcyB3ZXJlIHRob3NlIHdpdGg6CgoxLiBTaXRlIGNvZGVzOiBgciBzaXRlX2NvZGVgCjIuIEhpc3RvbG9neSBjb2RlczogYHIgaGlzdG9fY29kZWAKMy4gQmVoYXZpb3IgY29kZXM6IGByIGJlaGF2aW9yX2NvZGVgCgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGRpZG4ndCBoYXZlIHZhbHVlcyBmb3IgZWl0aGVyIGZvbGxvdyB1cCBvciB2aXRhbCBzdGF0dXMuCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgaGFkIHN1cmdlcnkgdG8gYSBkaXN0YW50IHNpdGUgdXNpbmcgYFJYX1NVTU1fU1VSR19PVEhfUkVHRElTYC4gVGhpcyB3YXMgZG9uZSB0byBhdm9pZCBjb25mb3VuZGluZyBvZiBkaWZmZXJlbnQgc3VyZ2ljYWwgcHJvY2VkdXJlcy4gV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBzdXJnZXJ5IGF0IHRoZSBwcmltYXJ5IHNpdGUuIFRoZXNlIGRpc3RhbnQgc2l0ZSBzdXJnZXJpZXMgd2VyZSBiZWluZyBjb3VudGVkIGluIHRoZSBzdXJnZXJ5L3JhZGlhdGlvbiBzZXF1ZW5jZSBhbmQgdGh1cyB0byBzaW1wbGlmeSBhbmFseXNpcyB0aGV5IHdlcmUgcmVtb3ZlZC4gCgpgYGB7cn0KCmRhdGEgJT4lCiAgICAgICAgQ3JlYXRlVGFibGVPbmUoZGF0YSA9IC4sCiAgICAgICAgICAgICAgICAgICAgIHZhcnMgPSBjKCJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIpLAogICAgICAgICAgICAgICAgICAgICBpbmNsdWRlTkEgPSBUUlVFKSAlPiUKICAgICAgICBwcmludCguLAogICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFKQoKZGF0YSA8LSBkYXRhICU+JQogICAgICAgIGZpbHRlcihSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyA9PSAiMCIpIApgYGAKCgpSYWNlIHdhcyBncm91cGVkIGFzIHdoaXRlLCBibGFjaywgYXNpYW4sIG90aGVyL3Vua25vd24KU3RhZ2Ugd2FzIGdyb3VwZWQgaW50byAwLCBJLCBJSSwgSUlJLCBJViwgTkFfVW5rbm93biwgc3RhZ2UgMCB3YXMgcmVtb3ZlZApXaGV0aGVyIHN1cmdlcnkgd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1NVUkdFUllgIHZhcmlhYmxlLiBUaGUgYFNVUkdFUllfWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKV2hldGhlciByYWRpYXRpb24gd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1JBRElBVElPTmAgdmFyaWFibGUuIFRoZSBgUkFESUFUSU9OX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCgojVGFibGUgb2YgdmFyaWFibGVzIGZvciBhbGwgY2FzZXM6CgpgYGB7cn0KCnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiLCAiRVhQTl9HUk9VUCIpKQoKCgpwX3RhYmxlKG5vX0V4Y2x1ZGVzLAogICAgICAgIHZhcnMgPSBjKCJGQUNJTElUWV9UWVBFX0YiLCAiRkFDSUxJVFlfTE9DQVRJT05fRiIsICJGQUNJTElUWV9HRU9HUkFQSFkiLCAgIkFHRSIsICJBR0VfRiIsICJBR0VfNDAiLAogICAgICAgICAgICAgICAgICJTRVhfRiIsICJSQUNFX0YiLCAiSElTUEFOSUMiLCAiSU5TVVJBTkNFX0YiLCAKICAgICAgICAgICAgICAgICAiSU5DT01FX0YiLCAiRURVQ0FUSU9OX0YiLCAiVV9SX0YiLCAiQ1JPV0ZMWSIsICJDRENDX1RPVEFMX0JFU1QiLAogICAgICAgICAgICAgICAgICJTSVRFX1RFWFQiLCAiQkVIQVZJT1IiLCAiR1JBREVfRiIsCiAgICAgICAgICAgICAgICAgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsICJNQVJHSU5TIiwgIk1BUkdJTlNfWU4iLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsCiAgICAgICAgICAgICAgICAgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAKICAgICAgICAgICAgICAgICAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAiU1VSR19SQURfU0VRIiwKICAgICAgICAgICAgICAgICAiU1VSR19SQURfU0VRX0MiLCAiVF9TSVpFIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiKSwgCiAgICAgICAgc3RyYXRhID0gIkVYUE5fR1JPVVAiKQoKCnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiWUVBUl9PRl9ESUFHTk9TSVMiKSwKICAgICAgICBzdHJhdGEgPSBjKCJNRURJQ0FJRF9FWFBOX0NPREUiKSkKYGBgCgoKYGBge3J9CgpwcmVFeHBNZWRpY2FyZSAgPC0gbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKcG9zdEV4cE1lZGljYXJlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIiAmIElOU1VSQU5DRV9GID09ICJNZWRpY2FyZSIpKQoKIyBwID0gMC4yNSB3aGVuIGNvbXBhcmluZyBjaGFuZ2UgaW4gcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRoIE1lZGljYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgQUNBIGV4cGFuc2lvbgpwcm9wLnRlc3QoYyhwcmVFeHBNZWRpY2FyZSwgcG9zdEV4cE1lZGljYXJlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnByZUV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKcG9zdEV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihJTlNVUkFOQ0VfRiA9PSAiTm9uZSIpKQoKIyBTaWduaWZpY2FudCBkZWNyZWFzZSBpbiB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHBhdGllbnRzIHdpdGhvdXQgaW5zdXJhbmNlIGFmdGVyIEFDQSBleHBhbnNpb24gCnByb3AudGVzdChjKHByZUV4cE5vSW5zdXJhbmNlLCBwb3N0RXhwTm9JbnN1cmFuY2UpLCAKICAgICAgICAgIGMobnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIpKSwgbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUG9zdC1FeHBhbnNpb24iKSkpKQoKcF90YWJsZShub19FeGNsdWRlcywgc3RyYXRhID0gIkVYUE5fR1JPVVAiLCB2YXJzID0gIkRYX1JYX1NUQVJURURfREFZUyIpCgpkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShJbnN1cmVkID0gSU5TVVJBTkNFX0YgIT0gIlVua25vd24iKQoKYGBgCgoKCgojS2FwbGFuIE1laWVyIEFuYWx5c2lzCgoKIyNBbGwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFsbCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IFR5cGUKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfVFlQRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgTG9jYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBHZW9ncmFwaHkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0dFT0dSQVBIWSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFXzQwIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjR2VuZGVyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTRVhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JBQ0VfRgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFDRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSGlzcGFuaWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1BBTklDIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSW5zdXJhbmNlIFN0YXR1cwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSU5TVVJBTkNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNPdmVyYWxsIFN1cnZpdmFsIHByZS9wb3N0LUFDQSBleHBhbnNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVYUE5fR1JPVVAiLCBkYXRhX2ltcCA9IG5vX0V4Y2x1ZGVzKQpgYGAKCgo8IS0tICMjSW5jb21lIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gY2xhc3MoZGF0YSRJTkNPTUVfRikgLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNFZHVjYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVEVUNBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjVXJiYW4vUnVyYWwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlVfUl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xhc3MgKHRyZWF0bWVudCBhdCBwZXJmb3JtaW5nIGZhY2lsaXR5KQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0xBU1NfT0ZfQ0FTRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjWWVhcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiWUVBUl9PRl9ESUFHTk9TSVMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQcmltYXJ5IFNpdGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNJVEVfVEVYVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNIaXN0b2xvZ3kKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNUT0xPR1lfRl9MSU0iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0JlaGF2aW9yIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNHcmFkZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkdSQURFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBUIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgTiBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjQ2xpbmljYWwgTSBTdGFnZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTSIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNDbGluaWNhbCBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFQgU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE4gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE0gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX00iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOUyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMgWWVzL05vCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjMzAgRGF5IFJlYWRtaXNzaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBUeXBlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSWF9TVU1NX1JBRElBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI0x5bXBob3Zhc2N1bGFyIEludmFzaW9uCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0VuZG9zY29waWMvUm9ib3RpYwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBSYWRpYXRpb24gU2VxdWVuY2UgCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTVVJHX1JBRF9TRVEiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNTdXJnZXJ5IFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR0VSWV9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBRElBVElPTl9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NoZW1vIFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0hFTU9fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjVHJlYXRtZW50IFllcy9ObwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUeF9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01ldGFzdGFzZXMgYXQgRHgKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAibWV0c19hdF9keF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNUdW1vciBTaXplIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJUX1NJWkUiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiNUdW1vciBzcGVjaWZpYyBWYXJpYWJsZXMKCgojIyNOb2RlIFNpemUKCgojQ294IFByb3BvcnRpb25hbCBIYXphcmQgUmF0aW8KCiMjTW9kZWwgIzEKCiMjI0Z1bGwgYW5hbHlzaXMKCmBgYHtyfQptb2RlbF9vbmUgPC0gY294cGgoU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgfiBTVVJHX1JBRF9TRVEgKyBJTlNVUkFOQ0VfRiArIEFHRSArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YsCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhKQptb2RlbF9vbmUgJT4lIHN1bW1hcnkoKQoKCmBgYAoKIyMjU3VtbWFyeSBvZiBNb2RlbAoKYGBge3J9Cm1vZGVsX29uZSAlPiUKICAgICAgICB0aWR5KC4sIGV4cG9uZW50aWF0ZSA9IFRSVUUpICU+JQogICAgICAgIHNlbGVjdCh0ZXJtLCBlc3RpbWF0ZSwgY29uZi5sb3csIGNvbmYuaGlnaCwgcC52YWx1ZSkgJT4lCiAgICAgICAgcmVuYW1lKFZhcmlhYmxlID0gdGVybSwKICAgICAgICAgICAgICAgSGF6YXJkX1JhdGlvID0gZXN0aW1hdGUpICU+JQogICAgICAgIHRibF9kZiAlPiUKICAgICAgICBwcmludChuID0gbnJvdyguKSkKCmBgYAoKIyBQcmVkaWN0aW9uIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzCgojIyBTdXJnZXJ5CmBgYHtyfQoKbm9fVWtucyA8LSBkYXRhICU+JQogIGZpbHRlcihTVVJHRVJZX1lOICE9ICJVa24iKSAlPiUgCiAgZHJvcGxldmVscygpICU+JSAKICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGFzLmxvZ2ljYWwoU1VSR0VSWV9ZTikpCgpmaXRfc3VyZyA8LSBnbG0oU1VSR19URiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19Va25zKQoKc3VtbWFyeShmaXRfc3VyZykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9zdXJnKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBNZXRhc3Rhc2lzIGF0IFRpbWUgb2YgRGlhZ25vc2lzCmBgYHtyfQojIGxpbWl0IHRvIHRob3NlIGNhc2VzIHdoZXJlIGRhdGEgYWJvdXQgZXhwYW5zaW9uIHN0YXR1cyBpcyBhdmFpbGFibGUgKD4gQWdlIDM5LCBub24tYW1iaWd1b3VzIHN0YXR1cyBzdGF0ZXMpCgpmaXRfbWV0cyA8LSBnbG0obWV0c19hdF9keF9GIH4gQUdFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GICsgRVhQTl9HUk9VUCwKICAgZGF0YSA9IG5vX0V4Y2x1ZGVzKQoKc3VtbWFyeShmaXRfbWV0cykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9tZXRzKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBg